X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Funix%2Fsilcunixschedule.c;h=137d52def8d784e8ddd55dc69f2fd6a661fe81b2;hb=4608f7437631ff8b29bab86b92f0365204b8855e;hp=e661ca6461da95a589cdf25cf4bee93a22c50a85;hpb=be93864e61249e662e9cfddaf584b21e50cb9080;p=silc.git diff --git a/lib/silcutil/unix/silcunixschedule.c b/lib/silcutil/unix/silcunixschedule.c index e661ca64..137d52de 100644 --- a/lib/silcutil/unix/silcunixschedule.c +++ b/lib/silcutil/unix/silcunixschedule.c @@ -459,6 +459,8 @@ static void silc_schedule_internal_sighandler(int signal) { int i; + SILC_LOG_DEBUG(("Start")); + for (i = 0; i < SIGNAL_COUNT; i++) { if (signal_call[i].sig == signal) { signal_call[i].call = TRUE; @@ -548,11 +550,13 @@ void silc_schedule_internal_signals_call(SilcSchedule schedule, void *context) signal_call[i].callback) { SILC_LOG_DEBUG(("Calling signal %d callback", signal_call[i].sig)); + silc_schedule_internal_signals_unblock(schedule, context); signal_call[i].callback(schedule, internal->app_context, SILC_TASK_INTERRUPT, signal_call[i].sig, signal_call[i].context); signal_call[i].call = FALSE; + silc_schedule_internal_signals_block(schedule, context); } }