00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef AXIS2_THREAD_MUTEX_H
00020 #define AXIS2_THREAD_MUTEX_H
00021
00027 #include <axis2_const.h>
00028 #include <axutil_allocator.h>
00029
00030 #ifdef __cplusplus
00031 extern "C" {
00032 #endif
00033
00034
00042 typedef struct axutil_thread_mutex_t axutil_thread_mutex_t;
00043
00044 #define AXIS2_THREAD_MUTEX_DEFAULT 0x0
00045 #define AXIS2_THREAD_MUTEX_NESTED 0x1
00046 #define AXIS2_THREAD_MUTEX_UNNESTED 0x2
00064 AXIS2_EXTERN axutil_thread_mutex_t * AXIS2_CALL
00065 axutil_thread_mutex_create(axutil_allocator_t *allocator,
00066 unsigned int flags);
00072 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00073 axutil_thread_mutex_lock(axutil_thread_mutex_t *mutex);
00074
00080 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00081 axutil_thread_mutex_trylock(axutil_thread_mutex_t *mutex);
00082
00087 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00088 axutil_thread_mutex_unlock(axutil_thread_mutex_t *mutex);
00089
00094 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00095 axutil_thread_mutex_destroy(axutil_thread_mutex_t *mutex);
00096
00099 #ifdef __cplusplus
00100 }
00101 #endif
00102
00103 #endif