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