diff --git a/magick/cache.c b/magick/cache.c
index b28064d..fb25755 100644
--- a/magick/cache.c
+++ b/magick/cache.c
@@ -150,9 +150,6 @@
static SplayTreeInfo
*cache_resources = (SplayTreeInfo *) NULL;
-
-static time_t
- cache_timer = 0;
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -2161,23 +2158,29 @@
CacheInfo
*cache_info;
- MagickSizeType
- time_limit;
-
MagickBooleanType
destroy,
status;
+ static MagickSizeType
+ time_limit = 0;
+
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
status=MagickTrue;
LockSemaphoreInfo(image->semaphore);
- time_limit=GetMagickResourceLimit(TimeResource);
- if (cache_timer == 0)
- cache_timer=time((time_t *) NULL);
- if ((time_limit != MagickResourceInfinity) &&
- ((MagickSizeType) (time((time_t *) NULL)-cache_timer) >= time_limit))
- ThrowFatalException(ResourceLimitFatalError,"TimeLimitExceeded");
+ if (time_limit == 0)
+ time_limit=GetMagickResourceLimit(TimeResource);
+ if (time_limit != MagickResourceInfinity)
+ {
+ static time_t
+ cache_timer = 0;
+
+ if (cache_timer == 0)
+ cache_timer=time((time_t *) NULL);
+ if ((MagickSizeType) (time((time_t *) NULL)-cache_timer) >= time_limit)
+ ThrowFatalException(ResourceLimitFatalError,"TimeLimitExceeded");
+ }
assert(image->cache != (Cache) NULL);
cache_info=(CacheInfo *) image->cache;
destroy=MagickFalse;