Annotation of win32/apache13/src/include/multithread.h, revision 1.1
1.1 ! parser 1: #ifndef APACHE_MULTITHREAD_H
! 2: #define APACHE_MULTITHREAD_H
! 3:
! 4: #ifdef __cplusplus
! 5: extern "C" {
! 6: #endif
! 7:
! 8: #define MULTI_OK (0)
! 9: #define MULTI_TIMEOUT (1)
! 10: #define MULTI_ERR (2)
! 11:
! 12: typedef void mutex;
! 13: typedef void semaphore;
! 14: typedef void thread;
! 15: typedef void event;
! 16:
! 17: /*
! 18: * Ambarish: Need to do the right stuff on multi-threaded unix
! 19: * I believe this is terribly ugly
! 20: */
! 21: #ifdef MULTITHREAD
! 22: #ifdef NETWARE
! 23: #define APACHE_TLS
! 24: #else
! 25: #define APACHE_TLS __declspec( thread )
! 26: #endif
! 27:
! 28: thread *create_thread(void (thread_fn) (void *thread_arg), void *thread_arg);
! 29: int kill_thread(thread *thread_id);
! 30: int await_thread(thread *thread_id, int sec_to_wait);
! 31: void exit_thread(int status);
! 32: void free_thread(thread *thread_id);
! 33:
! 34: API_EXPORT(mutex *) ap_create_mutex(char *name);
! 35: API_EXPORT(mutex *) ap_open_mutex(char *name);
! 36: API_EXPORT(int) ap_acquire_mutex(mutex *mutex_id);
! 37: API_EXPORT(int) ap_release_mutex(mutex *mutex_id);
! 38: API_EXPORT(void) ap_destroy_mutex(mutex *mutex_id);
! 39:
! 40: semaphore *create_semaphore(int initial);
! 41: int acquire_semaphore(semaphore *semaphore_id);
! 42: int release_semaphore(semaphore *semaphore_id);
! 43: void destroy_semaphore(semaphore *semaphore_id);
! 44:
! 45: event *create_event(int manual, int initial, char *name);
! 46: event *open_event(char *name);
! 47: int acquire_event(event *event_id);
! 48: int set_event(event *event_id);
! 49: int reset_event(event *event_id);
! 50: void destroy_event(event *event_id);
! 51:
! 52: #else /* ndef MULTITHREAD */
! 53:
! 54: #define APACHE_TLS
! 55: /* Only define the ones actually used, for now */
! 56: extern void *ap_dummy_mutex;
! 57:
! 58: #define ap_create_mutex(name) ((mutex *)ap_dummy_mutex)
! 59: #define ap_acquire_mutex(mutex_id) ((int)MULTI_OK)
! 60: #define ap_release_mutex(mutex_id) ((int)MULTI_OK)
! 61: #define ap_destroy_mutex(mutex_id)
! 62:
! 63: #endif /* ndef MULTITHREAD */
! 64:
! 65: #ifdef __cplusplus
! 66: }
! 67: #endif
! 68:
! 69: #endif /* !APACHE_MULTITHREAD_H */
E-mail: