From: cristy Date: Sat, 15 Mar 2014 20:58:06 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~2579 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3d308f4863a430314cac534baafdb7a72638fe7e;p=imagemagick --- diff --git a/MagickCore/log.c b/MagickCore/log.c index e71cc6392..889caedf8 100644 --- a/MagickCore/log.c +++ b/MagickCore/log.c @@ -700,6 +700,7 @@ MagickPrivate MagickBooleanType LogComponentGenesis(void) exception=AcquireExceptionInfo(); (void) GetLogInfo("*",exception); exception=DestroyExceptionInfo(exception); + event_semaphore=AcquireSemaphoreInfo(); return(MagickTrue); } @@ -746,6 +747,11 @@ static void *DestroyLogElement(void *log_info) MagickPrivate void LogComponentTerminus(void) { + if (event_semaphore == (SemaphoreInfo *) NULL) + ActivateSemaphoreInfo(&event_semaphore); + LockSemaphoreInfo(event_semaphore); + UnlockSemaphoreInfo(event_semaphore); + RelinquishSemaphoreInfo(&event_semaphore); if (log_semaphore == (SemaphoreInfo *) NULL) ActivateSemaphoreInfo(&log_semaphore); LockSemaphoreInfo(log_semaphore); @@ -1137,10 +1143,12 @@ MagickBooleanType LogMagickEventList(const LogEventType type,const char *module, exception=AcquireExceptionInfo(); log_info=(LogInfo *) GetLogInfo("*",exception); exception=DestroyExceptionInfo(exception); - LockSemaphoreInfo(log_semaphore); + if (event_semaphore == (SemaphoreInfo *) NULL) + ActivateSemaphoreInfo(&event_semaphore); + LockSemaphoreInfo(event_semaphore); if ((log_info->event_mask & type) == 0) { - UnlockSemaphoreInfo(log_semaphore); + UnlockSemaphoreInfo(event_semaphore); return(MagickTrue); } domain=CommandOptionToMnemonic(MagickLogEventOptions,type); @@ -1155,7 +1163,7 @@ MagickBooleanType LogMagickEventList(const LogEventType type,const char *module, if (text == (char *) NULL) { (void) ContinueTimer((TimerInfo *) &log_info->timer); - UnlockSemaphoreInfo(log_semaphore); + UnlockSemaphoreInfo(event_semaphore); return(MagickFalse); } if ((log_info->handler_mask & ConsoleHandler) != 0) @@ -1199,7 +1207,7 @@ MagickBooleanType LogMagickEventList(const LogEventType type,const char *module, if (filename == (char *) NULL) { (void) ContinueTimer((TimerInfo *) &log_info->timer); - UnlockSemaphoreInfo(log_semaphore); + UnlockSemaphoreInfo(event_semaphore); return(MagickFalse); } log_info->append=IsPathAccessible(filename); @@ -1207,7 +1215,7 @@ MagickBooleanType LogMagickEventList(const LogEventType type,const char *module, filename=(char *) RelinquishMagickMemory(filename); if (log_info->file == (FILE *) NULL) { - UnlockSemaphoreInfo(log_semaphore); + UnlockSemaphoreInfo(event_semaphore); return(MagickFalse); } log_info->generation++; @@ -1236,7 +1244,7 @@ MagickBooleanType LogMagickEventList(const LogEventType type,const char *module, } text=(char *) RelinquishMagickMemory(text); (void) ContinueTimer((TimerInfo *) &log_info->timer); - UnlockSemaphoreInfo(log_semaphore); + UnlockSemaphoreInfo(event_semaphore); return(MagickTrue); }