本文整理匯總了C++中AcquireSemaphoreInfo函數的典型用法代碼示例。如果您正苦於以下問題:C++ AcquireSemaphoreInfo函數的具體用法?C++ AcquireSemaphoreInfo怎麽用?C++ AcquireSemaphoreInfo使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了AcquireSemaphoreInfo函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C++代碼示例。
示例1: ListMagickResourceInfo
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
% L i s t M a g i c k R e s o u r c e I n f o %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% ListMagickResourceInfo() lists the resource info to a file.
%
% The format of the ListMagickResourceInfo method is:
%
% MagickBooleanType ListMagickResourceInfo(FILE *file,
% ExceptionInfo *exception)
%
% A description of each parameter follows.
%
% o file: An pointer to a FILE.
%
% o exception: Return any errors or warnings in this structure.
%
*/
MagickExport MagickBooleanType ListMagickResourceInfo(FILE *file,
ExceptionInfo *magick_unused(exception))
{
char
area_limit[MaxTextExtent],
disk_limit[MaxTextExtent],
map_limit[MaxTextExtent],
memory_limit[MaxTextExtent];
if (file == (const FILE *) NULL)
file=stdout;
AcquireSemaphoreInfo(&resource_semaphore);
(void) FormatMagickSize(MegabytesToBytes(resource_info.area_limit),
area_limit);
(void) FormatMagickSize(GigabytesToBytes(resource_info.disk_limit),
disk_limit);
(void) FormatMagickSize(MegabytesToBytes(resource_info.map_limit),map_limit);
(void) FormatMagickSize(MegabytesToBytes(resource_info.memory_limit),
memory_limit);
(void) fprintf(file,"File Area Memory Map Disk\n");
(void) fprintf(file,"------------------------------------------------\n");
(void) fprintf(file,"%4lu %9s %9s %9s %9s\n",resource_info.file_limit,
area_limit,memory_limit,map_limit,disk_limit);
(void) fflush(file);
RelinquishSemaphoreInfo(resource_semaphore);
return(MagickTrue);
}
示例2: assert
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
+ G e t C o d e r I n f o %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% GetCoderInfo searches the coder list for the specified name and if found
% returns attributes for that coder.
%
% The format of the GetCoderInfo method is:
%
% const CoderInfo *GetCoderInfo(const char *name,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o name: The coder name.
%
% o exception: Return any errors or warnings in this structure.
%
%
*/
MagickExport const CoderInfo *GetCoderInfo(const char *name,
ExceptionInfo *exception)
{
register const CoderInfo
*p;
assert(exception != (ExceptionInfo *) NULL);
if ((coder_list == (SplayTreeInfo *) NULL) ||
(instantiate_coder == MagickFalse))
if (InitializeCoderList(exception) == MagickFalse)
return((const CoderInfo *) NULL);
if ((coder_list == (SplayTreeInfo *) NULL) ||
(GetNumberOfNodesInSplayTree(coder_list) == 0))
return((const CoderInfo *) NULL);
if ((name == (const char *) NULL) || (LocaleCompare(name,"*") == 0))
{
ResetSplayTreeIterator(coder_list);
return((const CoderInfo *) GetNextValueInSplayTree(coder_list));
}
/*
Search for requested coder.
*/
AcquireSemaphoreInfo(&coder_semaphore);
ResetSplayTreeIterator(coder_list);
p=(const CoderInfo *) GetNextValueInSplayTree(coder_list);
while (p != (const CoderInfo *) NULL)
{
if (LocaleCompare(name,p->magick) == 0)
break;
p=(const CoderInfo *) GetNextValueInSplayTree(coder_list);
}
RelinquishSemaphoreInfo(coder_semaphore);
return(p);
}
示例3: GetLocaleInfo_
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
+ G e t L o c a l e I n f o _ %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% GetLocaleInfo_() searches the locale list for the specified tag and if
% found returns attributes for that element.
%
% The format of the GetLocaleInfo method is:
%
% const LocaleInfo *GetLocaleInfo_(const char *tag,
% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o tag: The locale tag.
%
% o exception: Return any errors or warnings in this structure.
%
%
*/
MagickExport const LocaleInfo *GetLocaleInfo_(const char *tag,
ExceptionInfo *exception)
{
register const LocaleInfo
*p;
assert(exception != (ExceptionInfo *) NULL);
if ((locale_list == (SplayTreeInfo *) NULL) ||
(instantiate_locale == MagickFalse))
if (InitializeLocaleList(exception) == MagickFalse)
return((const LocaleInfo *) NULL);
if ((locale_list == (SplayTreeInfo *) NULL) ||
(GetNumberOfNodesInSplayTree(locale_list) == 0))
return((const LocaleInfo *) NULL);
if ((tag == (const char *) NULL) || (LocaleCompare(tag,"*") == 0))
{
ResetSplayTreeIterator(locale_list);
return((const LocaleInfo *) GetNextValueInSplayTree(locale_list));
}
/*
Search for named tag.
*/
AcquireSemaphoreInfo(&locale_semaphore);
ResetSplayTreeIterator(locale_list);
p=(const LocaleInfo *) GetNextValueInSplayTree(locale_list);
while (p != (const LocaleInfo *) NULL)
{
if (LocaleCompare(tag,p->tag) == 0)
break;
p=(const LocaleInfo *) GetNextValueInSplayTree(locale_list);
}
RelinquishSemaphoreInfo(locale_semaphore);
return(p);
}
示例4: InitializeLocaleList
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
+ I n i t i a l i z e L o c a l e L i s t %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% InitializeLocaleList() initializes the locale list.
%
% The format of the InitializeLocaleList method is:
%
% MagickBooleanType InitializeLocaleList(ExceptionInfo *exception)
%
% A description of each parameter follows.
%
% o exception: Return any errors or warnings in this structure.
%
*/
static MagickBooleanType InitializeLocaleList(ExceptionInfo *exception)
{
if ((locale_list == (SplayTreeInfo *) NULL) &&
(instantiate_locale == MagickFalse))
{
AcquireSemaphoreInfo(&locale_semaphore);
if ((locale_list == (SplayTreeInfo *) NULL) &&
(instantiate_locale == MagickFalse))
{
char
*locale;
locale=setlocale(LC_CTYPE,0);
if ((locale == (char *) NULL) || (*locale == '\0'))
locale=getenv("LC_ALL");
if ((locale == (char *) NULL) || (*locale == '\0'))
locale=getenv("LC_MESSAGES");
if ((locale == (char *) NULL) || (*locale == '\0'))
locale=getenv("LC_CTYPE");
if ((locale == (char *) NULL) || (*locale == '\0'))
locale=getenv("LANG");
if ((locale == (char *) NULL) || (*locale == '\0'))
locale="C";
(void) LoadLocaleLists(LocaleFilename,locale,exception);
instantiate_locale=MagickTrue;
}
RelinquishSemaphoreInfo(locale_semaphore);
}
return((MagickBooleanType) (locale_list != (SplayTreeInfo *) NULL));
}
示例5: return
MagickExport void *ResizeMagickMemory(void *memory,const size_t size)
{
register void
*block;
if (memory == (void *) NULL)
return(AcquireMagickMemory(size));
#if !defined(MAGICKCORE_EMBEDDABLE_SUPPORT)
block=memory_methods.resize_memory_handler(memory,size == 0 ? 1UL : size);
if (block == (void *) NULL)
memory=RelinquishMagickMemory(memory);
#else
AcquireSemaphoreInfo(&memory_semaphore);
block=ResizeBlock(memory,size == 0 ? 1UL : size);
if (block == (void *) NULL)
{
if (ExpandHeap(size == 0 ? 1UL : size) == MagickFalse)
{
RelinquishSemaphoreInfo(memory_semaphore);
memory=RelinquishMagickMemory(memory);
ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
}
block=ResizeBlock(memory,size == 0 ? 1UL : size);
assert(block != (void *) NULL);
}
RelinquishSemaphoreInfo(memory_semaphore);
memory=RelinquishMagickMemory(memory);
#endif
return(block);
}
示例6: return
MagickExport void *ResizeMagickMemory(void *memory,const size_t size)
{
register void
*block;
if (memory == (void *) NULL)
return(AcquireMagickMemory(size));
#if !defined(UseEmbeddableMagick)
block=realloc(memory,size == 0 ? 1UL : size);
#else
AcquireSemaphoreInfo(&memory_semaphore);
block=ResizeBlock(memory,size == 0 ? 1UL : size);
if (block == (void *) NULL)
{
if (ExpandHeap(size == 0 ? 1UL : size) == MagickFalse)
{
RelinquishSemaphoreInfo(memory_semaphore);
memory=RelinquishMagickMemory(memory);
ThrowMagickFatalException(ResourceLimitFatalError,
"MemoryAllocationFailed",strerror(errno));
}
block=ResizeBlock(memory,size == 0 ? 1UL : size);
assert(block != (void *) NULL);
}
RelinquishSemaphoreInfo(memory_semaphore);
#endif
if (block == (void *) NULL)
memory=RelinquishMagickMemory(memory);
return(block);
}
示例7: DestroyMagickResources
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
+ D e s t r o y M a g i c k R e s o u r c e s %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% DestroyMagickResources() destroys the resource environment.
%
% The format of the DestroyMagickResources() method is:
%
% DestroyMagickResources(void)
%
*/
MagickExport void DestroyMagickResources(void)
{
AcquireSemaphoreInfo(&resource_semaphore);
if (temporary_resources != (SplayTreeInfo *) NULL)
temporary_resources=DestroySplayTree(temporary_resources);
RelinquishSemaphoreInfo(resource_semaphore);
resource_semaphore=DestroySemaphoreInfo(resource_semaphore);
}
示例8: DestroyLocaleList
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
+ D e s t r o y L o c a l e L i s t %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% DestroyLocaleList() deallocates memory associated with the locale list.
%
% The format of the DestroyLocaleList method is:
%
% DestroyLocaleList(void)
%
%
*/
MagickExport void DestroyLocaleList(void)
{
AcquireSemaphoreInfo(&locale_semaphore);
if (locale_list != (SplayTreeInfo *) NULL)
locale_list=DestroySplayTree(locale_list);
instantiate_locale=MagickFalse;
RelinquishSemaphoreInfo(locale_semaphore);
locale_semaphore=DestroySemaphoreInfo(locale_semaphore);
}
示例9: InitializeExceptionInfo
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
% I n i t i a l i z e t E x c e p t i o n I n f o %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% InitializeExceptionInfo() initializes an exception to default values.
%
% The format of the InitializeExceptionInfo method is:
%
% InitializeExceptionInfo(ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o exception: the exception info.
%
*/
MagickPrivate void InitializeExceptionInfo(ExceptionInfo *exception)
{
assert(exception != (ExceptionInfo *) NULL);
(void) ResetMagickMemory(exception,0,sizeof(*exception));
exception->severity=UndefinedException;
exception->exceptions=(void *) NewLinkedList(0);
exception->semaphore=AcquireSemaphoreInfo();
exception->signature=MagickCoreSignature;
}
示例10: DestroyCoderList
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
+ D e s t r o y C o d e r L i s t %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% DestroyCoderList() deallocates memory associated with the font list.
%
% The format of the DestroyCoderList method is:
%
% DestroyCoderList(void)
%
%
*/
MagickExport void DestroyCoderList(void)
{
AcquireSemaphoreInfo(&coder_semaphore);
if (coder_list != (SplayTreeInfo *) NULL)
coder_list=DestroySplayTree(coder_list);
instantiate_coder=MagickFalse;
RelinquishSemaphoreInfo(coder_semaphore);
coder_semaphore=DestroySemaphoreInfo(coder_semaphore);
}
示例11: DestroyTypeList
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
+ D e s t r o y T y p e L i s t %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% DestroyTypeList() deallocates memory associated with the font list.
%
% The format of the DestroyTypeList method is:
%
% DestroyTypeList(void)
%
*/
MagickExport void DestroyTypeList(void)
{
AcquireSemaphoreInfo(&type_semaphore);
if (type_list != (SplayTreeInfo *) NULL)
type_list=DestroySplayTree(type_list);
instantiate_type=MagickFalse;
RelinquishSemaphoreInfo(type_semaphore);
type_semaphore=DestroySemaphoreInfo(type_semaphore);
}
示例12: GetMagickResourceLimit
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
% G e t M a g i c k R e s o u r c e L i m i t %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% GetMagickResourceLimit() returns the specified resource limit.
%
% The format of the GetMagickResourceLimit() method is:
%
% MagickSizeType GetMagickResourceLimit(const ResourceType type)
%
% A description of each parameter follows:
%
% o type: the type of resource.
%
*/
MagickExport MagickSizeType GetMagickResourceLimit(const ResourceType type)
{
MagickSizeType
resource;
resource=0;
if (resource_semaphore == (SemaphoreInfo *) NULL)
AcquireSemaphoreInfo(&resource_semaphore);
LockSemaphoreInfo(resource_semaphore);
switch (type)
{
case AreaResource:
{
resource=resource_info.area_limit;
break;
}
case MemoryResource:
{
resource=resource_info.memory_limit;
break;
}
case MapResource:
{
resource=resource_info.map_limit;
break;
}
case DiskResource:
{
resource=resource_info.disk_limit;
break;
}
case FileResource:
{
resource=resource_info.file_limit;
break;
}
case ThreadResource:
{
resource=resource_info.thread_limit;
break;
}
case ThrottleResource:
{
resource=resource_info.throttle_limit;
break;
}
case TimeResource:
{
resource=resource_info.time_limit;
break;
}
default:
break;
}
UnlockSemaphoreInfo(resource_semaphore);
return(resource);
}
示例13: AcquireMagickMemory
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
% A c q u i r e M a g i c k M e m o r y %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% AcquireMagickMemory() returns a pointer to a block of memory at least size
% bytes suitably aligned for any use.
%
% The format of the AcquireMagickMemory method is:
%
% void *AcquireMagickMemory(const size_t size)
%
% A description of each parameter follows:
%
% o size: the size of the memory in bytes to allocate.
%
*/
MagickExport void *AcquireMagickMemory(const size_t size)
{
register void
*memory;
#if !defined(MAGICKCORE_EMBEDDABLE_SUPPORT)
memory=memory_methods.acquire_memory_handler(size == 0 ? 1UL : size);
#else
if (free_segments == (DataSegmentInfo *) NULL)
{
AcquireSemaphoreInfo(&memory_semaphore);
if (free_segments == (DataSegmentInfo *) NULL)
{
register long
i;
assert(2*sizeof(size_t) > (size_t) (~SizeMask));
(void) ResetMagickMemory(&memory_info,0,sizeof(memory_info));
memory_info.allocation=SegmentSize;
memory_info.blocks[MaxBlocks]=(void *) (-1);
for (i=0; i < MaxSegments; i++)
{
if (i != 0)
memory_info.segment_pool[i].previous=
(&memory_info.segment_pool[i-1]);
if (i != (MaxSegments-1))
memory_info.segment_pool[i].next=(&memory_info.segment_pool[i+1]);
}
free_segments=(&memory_info.segment_pool[0]);
}
RelinquishSemaphoreInfo(memory_semaphore);
}
AcquireSemaphoreInfo(&memory_semaphore);
memory=AcquireBlock(size == 0 ? 1UL : size);
if (memory == (void *) NULL)
{
if (ExpandHeap(size == 0 ? 1UL : size) != MagickFalse)
memory=AcquireBlock(size == 0 ? 1UL : size);
}
RelinquishSemaphoreInfo(memory_semaphore);
#endif
return(memory);
}
示例14: RelinquishMagickResource
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
% R e l i n q u i s h M a g i c k R e s o u r c e %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% RelinquishMagickResource() relinquishes resources of the specified type.
%
% The format of the RelinquishMagickResource() method is:
%
% void RelinquishMagickResource(const ResourceType type,
% const MagickSizeType size)
%
% A description of each parameter follows:
%
% o type: The type of resource.
%
% o size: The size of the resource.
%
%
*/
MagickExport void RelinquishMagickResource(const ResourceType type,
const MagickSizeType size)
{
char
resource_current[MaxTextExtent],
resource_limit[MaxTextExtent],
resource_request[MaxTextExtent];
FormatSize(size,resource_request);
AcquireSemaphoreInfo(&resource_semaphore);
switch (type)
{
case AreaResource:
{
resource_info.area=size;
FormatSize((MagickSizeType) resource_info.area,resource_current);
FormatSize(MegabytesToBytes(resource_info.area_limit),resource_limit);
break;
}
case MemoryResource:
{
resource_info.memory-=size;
FormatSize((MagickSizeType) resource_info.memory,resource_current);
FormatSize(MegabytesToBytes(resource_info.memory_limit),resource_limit);
break;
}
case MapResource:
{
resource_info.map-=size;
FormatSize((MagickSizeType) resource_info.map,resource_current);
FormatSize(MegabytesToBytes(resource_info.map_limit),resource_limit);
break;
}
case DiskResource:
{
resource_info.disk-=size;
FormatSize((MagickSizeType) resource_info.disk,resource_current);
FormatSize(GigabytesToBytes(resource_info.disk_limit),resource_limit);
break;
}
case FileResource:
{
resource_info.file-=size;
FormatSize((MagickSizeType) resource_info.file,resource_current);
FormatSize((MagickSizeType) resource_info.file_limit,resource_limit);
break;
}
default:
break;
}
RelinquishSemaphoreInfo(resource_semaphore);
(void) LogMagickEvent(ResourceEvent,GetMagickModule(),"%s: %s/%s/%s",
MagickOptionToMnemonic(MagickResourceOptions,(long) type),resource_request,
resource_current,resource_limit);
}
示例15: LocaleComponentTerminus
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
+ L o c a l e C o m p o n e n t T e r m i n u s %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% LocaleComponentTerminus() destroys the locale component.
%
% The format of the LocaleComponentTerminus method is:
%
% LocaleComponentTerminus(void)
%
*/
MagickExport void LocaleComponentTerminus(void)
{
if (locale_semaphore == (SemaphoreInfo *) NULL)
AcquireSemaphoreInfo(&locale_semaphore);
LockSemaphoreInfo(locale_semaphore);
if (locale_list != (SplayTreeInfo *) NULL)
locale_list=DestroySplayTree(locale_list);
instantiate_locale=MagickFalse;
UnlockSemaphoreInfo(locale_semaphore);
DestroySemaphoreInfo(&locale_semaphore);
}