From: Pekka Riikonen Date: Thu, 12 Dec 2002 21:26:11 +0000 (+0000) Subject: Fixed uninit to lock scheduler correctly on dispatch. X-Git-Tag: silc.client.0.9.11~29 X-Git-Url: http://git.silcnet.org/gitweb/?a=commitdiff_plain;h=b6ba8ef59df60ffdb9092e02447010f9f11cd471;p=silc.git Fixed uninit to lock scheduler correctly on dispatch. --- diff --git a/CHANGES b/CHANGES index 918d213b..d99812e9 100644 --- a/CHANGES +++ b/CHANGES @@ -7,6 +7,10 @@ Thu Dec 12 23:22:50 EET 2002 Pekka Riikonen the mutex is locked/unlcoked already. Affected file lib/silcutil/unix/silcunixmutex.c. + * Fixed locking in silc_schedule_uninit. It didn't lock + when dispatching timeout tasks. Affected file is + lib/silcutil/silcschedule.c. + Thu Dec 12 12:06:59 CET 2002 Jochen Eisinger * Don't print signed messages when sending failed. Affected files diff --git a/lib/silcutil/silcschedule.c b/lib/silcutil/silcschedule.c index 515d3a9f..6b342b9f 100644 --- a/lib/silcutil/silcschedule.c +++ b/lib/silcutil/silcschedule.c @@ -275,16 +275,16 @@ bool silc_schedule_uninit(SilcSchedule schedule) return FALSE; /* Dispatch all timeouts before going away */ + SILC_SCHEDULE_LOCK(schedule); silc_mutex_lock(schedule->timeout_queue->lock); silc_schedule_dispatch_timeout(schedule, TRUE); silc_mutex_unlock(schedule->timeout_queue->lock); + SILC_SCHEDULE_UNLOCK(schedule); /* Deliver signals before going away */ if (schedule->signal_tasks) { - SILC_SCHEDULE_UNLOCK(schedule); silc_schedule_internal_signals_call(schedule->internal, schedule); schedule->signal_tasks = FALSE; - SILC_SCHEDULE_LOCK(schedule); } /* Unregister all tasks */