X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=signal.c;h=d9a6aa37057415117c32a6a18c33d81977499392;hb=refs%2Fheads%2Fnext;hp=bdafeaf296e026508698c306e4b498e0710a9cee;hpb=81bc7110ff6a4c2d002618b94fcf5aa60cd4cad2;p=paraslash.git diff --git a/signal.c b/signal.c index bdafeaf2..d9a6aa37 100644 --- a/signal.c +++ b/signal.c @@ -72,10 +72,13 @@ static void generic_signal_handler(int s) errno = save_errno; return; } - if (ret < 0) - PARA_EMERG_LOG("%s\n", strerror(errno)); - else - PARA_EMERG_LOG("short write to signal pipe\n"); + /* + * This is a fatal error which should never happen. We must not call + * PARA_XXX_LOG() here because this might acquire the log mutex which + * is already taken by the main program if the interrupt occurs while a + * log message is being printed. The mutex will not be released as long + * as this signal handler is running, so a deadlock ensues. + */ exit(EXIT_FAILURE); }