]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sun, 25 Jan 2015 23:54:21 +0000 (23:54 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sun, 25 Jan 2015 23:54:21 +0000 (23:54 +0000)
MagickCore/magick.c

index 7a020241f3f1edfd7957000ca15bf8e8c6c3496b..5455f6ceb2a5d87d12741b05946eace883baf3e8 100644 (file)
@@ -122,7 +122,8 @@ static SplayTreeInfo
   *magick_list = (SplayTreeInfo *) NULL;
 
 static volatile MagickBooleanType
-  instantiate_magickcore = MagickFalse;
+  instantiate_magickcore = MagickFalse,
+  magickcore_signal_in_progress = MagickFalse;
 \f
 /*
   Forward declarations.
@@ -1168,11 +1169,10 @@ static SignalHandler *SetMagickSignalHandler(int signal_number,
 
 static void MagickSignalHandler(int signal_number)
 {
-#if !defined(MAGICKCORE_HAVE_SIGACTION)
-  (void) signal(signal_number,SIG_IGN);
-#endif
+  if (magickcore_signal_in_progress != MagickFalse)
+    (void) SetMagickSignalHandler(signal_number,signal_handlers[signal_number]);
+  magickcore_signal_in_progress=MagickTrue;
   AsynchronousResourceComponentTerminus();
-  (void) SetMagickSignalHandler(signal_number,signal_handlers[signal_number]);
 #if defined(SIGQUIT)
   if (signal_number == SIGQUIT)
     abort();