*GetPixelCachePixels(Image *,MagickSizeType *,ExceptionInfo *),
GetPixelCacheTileSize(const Image *,size_t *,size_t *),
GetPixelCacheMethods(CacheMethods *),
+ ResetPixelCacheEpoch(void),
SetPixelCacheMethods(Cache,CacheMethods *);
#if defined(__cplusplus) || defined(c_plusplus)
static SemaphoreInfo
*cache_semaphore = (SemaphoreInfo *) NULL;
+
+static time_t
+ cache_epoch = 0;
\f
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
status;
static MagickSizeType
+ cache_timelimit = 0,
cpu_throttle = MagickResourceInfinity,
- cycles = 0,
- time_limit = 0;
-
- static time_t
- cache_timestamp = 0;
+ cycles = 0;
status=MagickTrue;
if (cpu_throttle == MagickResourceInfinity)
cpu_throttle=GetMagickResourceLimit(ThrottleResource);
if ((cpu_throttle != 0) && ((cycles++ % 32) == 0))
MagickDelay(cpu_throttle);
- if (time_limit == 0)
+ if (cache_epoch == 0)
{
/*
Set the expire time in seconds.
*/
- time_limit=GetMagickResourceLimit(TimeResource);
- cache_timestamp=time((time_t *) NULL);
+ cache_timelimit=GetMagickResourceLimit(TimeResource);
+ cache_epoch=time((time_t *) NULL);
}
- if ((time_limit != MagickResourceInfinity) &&
- ((MagickSizeType) (time((time_t *) NULL)-cache_timestamp) >= time_limit))
+ if ((cache_timelimit != MagickResourceInfinity) &&
+ ((MagickSizeType) (time((time_t *) NULL)-cache_epoch) >= cache_timelimit))
{
#if defined(ECANCELED)
errno=ECANCELED;
% %
% %
% %
++ R e s e t P i x e l C a c h e E p o c h e %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ResetPixelCacheEpoch() resets the pixel cache epoch.
+%
+% The format of the ResetPixelCacheEpoch method is:
+%
+% void ResetPixelCacheEpoch(void)
+%
+*/
+MagickPrivate void ResetPixelCacheEpoch(void)
+{
+ cache_epoch=0;
+}
+\f
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
+ S e t P i x e l C a c h e M e t h o d s %
% %
% %
*/
#include "MagickCore/studio.h"
#include "MagickCore/cache.h"
+#include "MagickCore/cache-private.h"
#include "MagickCore/configure.h"
#include "MagickCore/exception.h"
#include "MagickCore/exception-private.h"
value=GetPolicyValue("time");
if (value != (char *) NULL)
resource_info.time_limit=MagickMin(limit,StringToSizeType(value,100.0));
+ ResetPixelCacheEpoch();
break;
}
default: