diff options
author | Jakub Sławiński | 2006-02-05 15:14:03 +0100 |
---|---|---|
committer | Joshua Judson Rosen | 2014-07-17 21:15:02 +0200 |
commit | b457fec36399c1f7de093d5e92bb4fa453b79c86 (patch) | |
tree | 2084c9a78d40213015e6f10e3e9e01bc4c0c51f1 /src/thread_management.c | |
parent | Update copyright statements. (diff) | |
download | apf-b457fec36399c1f7de093d5e92bb4fa453b79c86.tar.gz |
v0.8
- Fixed: infinite loop after buffering message
- Fixed: corrupt packets after closing connections in the stopped state
- Fixed: bug in mapping user numbers between afclient and afserver
- Fixed: premature close of the service connection
- Fixed: invalid buffering when the connection is closing
- Added: Multiple tunnels in one afclient<->afserver connection
Diffstat (limited to 'src/thread_management.c')
-rw-r--r-- | src/thread_management.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/thread_management.c b/src/thread_management.c index 12b406a..f3812e9 100644 --- a/src/thread_management.c +++ b/src/thread_management.c @@ -28,12 +28,24 @@ static pthread_t mainthread; static pthread_mutex_t mainmutex = PTHREAD_MUTEX_INITIALIZER; static pthread_cond_t maincond = PTHREAD_COND_INITIALIZER; +/* + * Function name: remember_mainthread + * Description: Remembers the current thread as a main thread. + */ + void remember_mainthread(void) { mainthread = pthread_self(); } +/* + * Function name: is_this_a_mainthread + * Description: Checks, if the current thread is a main thread. + * Returns: 0 - this is not a main thread, + * 1 - this is a main thread. + */ + int is_this_a_mainthread(void) { @@ -43,24 +55,44 @@ is_this_a_mainthread(void) return 0; } +/* + * Function name: start_critical_section + * Description: Starts the critical section of the code by locking the mutex. + */ + void start_critical_section(void) { pthread_mutex_lock( &mainmutex); } +/* + * Function name: end_critical_section + * Description: Ends the critical section of the code by unlocking the mutex. + */ + void end_critical_section(void) { pthread_mutex_unlock( &mainmutex); } +/* + * Function name: wait_for_condition + * Description: Starts waiting for the condition. + */ + void wait_for_condition(void) { pthread_cond_wait(&maincond, &mainmutex); } +/* + * Function name: broadcast_condition + * Description: Broadcast the met of the condition. + */ + void broadcast_condition(void) { |