projects
/
silc.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
be93864
)
Unlock signals when calling signal callback.
author
Pekka Riikonen
<priikone@silcnet.org>
Sun, 24 Jun 2007 14:12:26 +0000
(14:12 +0000)
committer
Pekka Riikonen
<priikone@silcnet.org>
Sun, 24 Jun 2007 14:12:26 +0000
(14:12 +0000)
lib/silcutil/unix/silcunixschedule.c
patch
|
blob
|
history
diff --git
a/lib/silcutil/unix/silcunixschedule.c
b/lib/silcutil/unix/silcunixschedule.c
index e661ca6461da95a589cdf25cf4bee93a22c50a85..137d52def8d784e8ddd55dc69f2fd6a661fe81b2 100644
(file)
--- 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;
{
int i;
+ SILC_LOG_DEBUG(("Start"));
+
for (i = 0; i < SIGNAL_COUNT; i++) {
if (signal_call[i].sig == signal) {
signal_call[i].call = TRUE;
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));
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;
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);
}
}
}
}