static SemaphoreInfo
*registry_semaphore = (SemaphoreInfo *) NULL;
-
-static volatile MagickBooleanType
- instantiate_registry = MagickFalse;
\f
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/
MagickPrivate MagickBooleanType RegistryComponentGenesis(void)
{
- AcquireSemaphoreInfo(®istry_semaphore);
+ if (registry_semaphore == (SemaphoreInfo *) NULL)
+ registry_semaphore=AcquireSemaphoreInfo();
return(MagickTrue);
}
\f
MagickPrivate void RegistryComponentTerminus(void)
{
if (registry_semaphore == (SemaphoreInfo *) NULL)
- AcquireSemaphoreInfo(®istry_semaphore);
+ ActivateSemaphoreInfo(®istry_semaphore);
LockSemaphoreInfo(registry_semaphore);
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
if (registry != (void *) NULL)
registry=DestroySplayTree(registry);
- instantiate_registry=MagickFalse;
UnlockSemaphoreInfo(registry_semaphore);
- DestroySemaphoreInfo(®istry_semaphore);
+ RelinquishSemaphoreInfo(®istry_semaphore);
}
\f
/*
registry_info->type=type;
registry_info->value=clone_value;
registry_info->signature=MagickSignature;
- if ((registry == (SplayTreeInfo *) NULL) &&
- (instantiate_registry == MagickFalse))
+ if (registry == (SplayTreeInfo *) NULL)
{
if (registry_semaphore == (SemaphoreInfo *) NULL)
- AcquireSemaphoreInfo(®istry_semaphore);
+ ActivateSemaphoreInfo(®istry_semaphore);
LockSemaphoreInfo(registry_semaphore);
- if ((registry == (SplayTreeInfo *) NULL) &&
- (instantiate_registry == MagickFalse))
- {
- registry=NewSplayTree(CompareSplayTreeString,RelinquishMagickMemory,
- DestroyRegistryNode);
- instantiate_registry=MagickTrue;
- }
+ if (registry == (SplayTreeInfo *) NULL)
+ registry=NewSplayTree(CompareSplayTreeString,RelinquishMagickMemory,
+ DestroyRegistryNode);
UnlockSemaphoreInfo(registry_semaphore);
}
status=AddValueToSplayTree(registry,ConstantString(key),registry_info);