From b6ba8ef59df60ffdb9092e02447010f9f11cd471 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Thu, 12 Dec 2002 21:26:11 +0000 Subject: [PATCH] Fixed uninit to lock scheduler correctly on dispatch. --- CHANGES | 4 ++++ lib/silcutil/silcschedule.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) 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 */ -- 2.43.0