rbb         99/07/27 11:46:24

  Modified:    apr/threadproc/unix thread.c threadcancel.c threadpriv.c
  Log:
  Make all thread functions a no-op on platforms without pthreads.  Hopefully,
  someday this will change to a user-land threads library, but this will work
  for now.  I am returning APR_SUCCESS for now, that may change too.
  
  Revision  Changes    Path
  1.12      +77 -0     apache-apr/apr/threadproc/unix/thread.c
  
  Index: thread.c
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/threadproc/unix/thread.c,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- thread.c  1999/07/06 17:01:41     1.11
  +++ thread.c  1999/07/27 18:46:22     1.12
  @@ -58,6 +58,7 @@
   #include "apr_general.h"
   #include "apr_portable.h"
   
  +#ifdef HAVE_PTHREAD_H
   ap_status_t ap_create_threadattr(ap_context_t *cont, struct threadattr_t 
**new)
   {
       ap_status_t stat;
  @@ -226,4 +227,80 @@
       (*thd)->td = thethd;
       return APR_SUCCESS;
   }
  +#else
  +    /* No pthread.h, no threads for right now.*/
  +ap_status_t ap_create_threadattr(ap_context_t *cont, struct threadattr_t 
**new)
  +{
  +    *new = NULL;
  +    return APR_SUCCESS;
  +}
  +
  +ap_status_t ap_setthreadattr_detach(struct threadattr_t *attr, ap_int32_t on)
  +{
  +    return APR_SUCCESS;
  +}
  +
  +ap_status_t ap_getthreadattr_detach(struct threadattr_t *attr)
  +{
  +    return APR_NOTDETACH;
  +}
  +
  +ap_status_t ap_create_thread(ap_context_t *cont, struct threadattr_t *attr, 
  +                             ap_thread_start_t func, void *data, 
  +                             struct thread_t **new)
  +{
  +    *new = NULL;
  +    return stat;
  +}
  +
  +ap_status_t ap_thread_exit(ap_thread_t *thd, ap_status_t *retval)
  +{
  +    APR_SUCCESS;
  +}
  +
  +ap_status_t ap_thread_join(struct thread_t *thd, ap_status_t *retval)
  +{
  +    return APR_SUCCESS;
  +}
  +
  +ap_status_t ap_thread_detach(struct thread_t *thd)
  +{
  +    return APR_SUCCESS;
  +}
  +
  +/* ***APRDOC********************************************************
  + * ap_status_t ap_get_threaddata(ap_thread_t *, void *)
  + *    Return the context associated with the current thread.
  + * arg 1) The currently open thread.
  + * arg 2) The user data associated with the thread.
  + */
  +ap_status_t ap_get_threaddata(struct thread_t *thread, void *data)
  +{
  +    data = NULL;
  +    return APR_ENOTHREAD;
  +}
  +
  +/* ***APRDOC********************************************************
  + * ap_status_t ap_set_threaddata(ap_thread_t *, void *)
  + *    Return the context associated with the current thread.
  + * arg 1) The currently open thread.
  + * arg 2) The user data to associate with the thread.
  + */
  +ap_status_t ap_set_threaddata(struct thread_t *thread, void *data)
  +{
  +    return APR_ENOTHREAD;
  +}
  +
  +ap_status_t ap_get_os_thread(struct thread_t *thd, ap_os_thread_t *thethd)
  +{
  +    thethd = NULL;
  +    return APR_SUCCESS;
  +}
  +
  +ap_status_t ap_put_os_thread(ap_context_t *cont, struct thread_t **thd,
  +                             ap_os_thread_t *thethd)
  +{
  +    return APR_SUCCESS;
  +}
  +#endif
   
  
  
  
  1.5       +17 -2     apache-apr/apr/threadproc/unix/threadcancel.c
  
  Index: threadcancel.c
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/threadproc/unix/threadcancel.c,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- threadcancel.c    1999/05/25 17:04:03     1.4
  +++ threadcancel.c    1999/07/27 18:46:23     1.5
  @@ -57,7 +57,7 @@
   #include "apr_thread_proc.h"
   #include "apr_general.h"
   
  -
  +#ifdef HAVE_PTHREAD_H
   ap_status_t ap_cancel_thread(struct thread_t *thd)
   {
       ap_status_t stat;
  @@ -68,7 +68,6 @@
           return stat;
       }
   }
  -
       
   ap_status_t ap_setcanceltype(ap_context_t *cont, ap_int32_t type)
   {
  @@ -91,4 +90,20 @@
           return stat;
       }
   }
  +#else
  +ap_status_t ap_cancel_thread(struct thread_t *thd)
  +{
  +    return APR_SUCCESS;
  +}
  +    
  +ap_status_t ap_setcanceltype(ap_context_t *cont, ap_int32_t type)
  +{
  +    return APR_SUCCESS;
  +}
  +
  +ap_status_t ap_setcancelstate(ap_context_t *cont, ap_int32_t type)
  +{
  +    return APR_SUCCESS;
  +}
  +#endif
   
  
  
  
  1.10      +58 -0     apache-apr/apr/threadproc/unix/threadpriv.c
  
  Index: threadpriv.c
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/threadproc/unix/threadpriv.c,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- threadpriv.c      1999/07/06 17:01:41     1.9
  +++ threadpriv.c      1999/07/27 18:46:23     1.10
  @@ -59,6 +59,7 @@
   #include "apr_errno.h"
   #include "apr_portable.h"
   
  +#ifdef HAVE_PTHREAD_H
   ap_status_t ap_create_thread_private(ap_context_t *cont, void (*dest)(void 
*),
                                        struct threadkey_t **key)
   {
  @@ -159,4 +160,61 @@
       (*key)->key = *thekey;
       return APR_SUCCESS;
   }           
  +#else
  +ap_status_t ap_create_thread_private(ap_context_t *cont, void (*dest)(void 
*),
  +                                     struct threadkey_t **key)
  +{
  +    *key = NULL;
  +    return APR_SUCCESS;
  +}
  +
  +ap_status_t ap_get_thread_private(struct threadkey_t *key, void **new)
  +{
  +    (*new) = NULL;
  +    return APR_SUCCESS;
  +}
  +
  +ap_status_t ap_set_thread_private(struct threadkey_t *key, void *priv)
  +{
  +    return APR_SUCCESS;
  +}
   
  +ap_status_t ap_delete_thread_private(struct threadkey_t *key)
  +{
  +    return APR_SUCCESS; 
  +}
  +
  +/* ***APRDOC********************************************************
  + * ap_status_t ap_get_threadkeydata(ap_threadkey_t *, void *)
  + *    Return the context associated with the current threadkey.
  + * arg 1) The currently open threadkey.
  + * arg 2) The user data associated with the threadkey.
  + */
  +ap_status_t ap_get_threadkeydata(struct threadkey_t *threadkey, void *data)
  +{
  +    return APR_SUCCESS;
  +}
  +
  +/* ***APRDOC********************************************************
  + * ap_status_t ap_set_threadkeydata(ap_threadkey_t *, void *)
  + *    Return the context associated with the current threadkey.
  + * arg 1) The currently open threadkey.
  + * arg 2) The user data to associate with the threadkey.
  + */
  +ap_status_t ap_set_threadkeydata(struct threadkey_t *threadkey, void *data)
  +{
  +    return APR_SUCCESS;
  +}
  +
  +ap_status_t ap_get_os_threadkey(struct threadkey_t *key, ap_os_threadkey_t 
*thekey)
  +{
  +    thekey = NULL;
  +    return APR_SUCCESS;
  +}
  +
  +ap_status_t ap_put_os_threadkey(ap_context_t *cont, struct threadkey_t **key,
  +                                ap_os_threadkey_t *thekey)
  +{
  +    return APR_SUCCESS;
  +}           
  +#endif
  
  
  

Reply via email to