From b457fec36399c1f7de093d5e92bb4fa453b79c86 Mon Sep 17 00:00:00 2001 From: Jakub Sławiński Date: Sun, 5 Feb 2006 15:14:03 +0100 Subject: 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 --- src/thread_management.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'src/thread_management.c') 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) { -- cgit v1.1