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: