00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIS2_THREAD_MUTEX_H
00019 #define AXIS2_THREAD_MUTEX_H
00020
00026 #include <axis2_const.h>
00027 #include <axis2_allocator.h>
00028
00029 #ifdef __cplusplus
00030 extern "C" {
00031 #endif
00032
00033
00041 typedef struct axis2_thread_mutex_t axis2_thread_mutex_t;
00042
00043 #define AXIS2_THREAD_MUTEX_DEFAULT 0x0
00044 #define AXIS2_THREAD_MUTEX_NESTED 0x1
00045 #define AXIS2_THREAD_MUTEX_UNNESTED 0x2
00063 AXIS2_EXTERN axis2_thread_mutex_t * AXIS2_CALL
00064 axis2_thread_mutex_create(axis2_allocator_t *allocator,
00065 unsigned int flags);
00071 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00072 axis2_thread_mutex_lock(axis2_thread_mutex_t *mutex);
00073
00079 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00080 axis2_thread_mutex_trylock(axis2_thread_mutex_t *mutex);
00081
00086 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00087 axis2_thread_mutex_unlock(axis2_thread_mutex_t *mutex);
00088
00093 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00094 axis2_thread_mutex_destroy(axis2_thread_mutex_t *mutex);
00095
00098 #ifdef __cplusplus
00099 }
00100 #endif
00101
00102 #endif