Changeset 453

Show
Ignore:
Timestamp:
10/25/09 11:36:48 (4 weeks ago)
Author:
cristy
Message:
 
Location:
ImageMagick/trunk
Files:
26 modified

Legend:

Unmodified
Added
Removed
  • ImageMagick/trunk/coders/png.c

    r391 r453  
    17041704 
    17051705#if defined(PNG_SETJMP_NOT_THREAD_SAFE) 
    1706   AcquireSemaphoreInfo(&png_semaphore); 
     1706  LockSemaphoreInfo(png_semaphore); 
    17071707#endif 
    17081708 
     
    17491749      png_destroy_read_struct(&ping,&ping_info,&end_info); 
    17501750#if defined(PNG_SETJMP_NOT_THREAD_SAFE) 
    1751       RelinquishSemaphoreInfo(png_semaphore); 
     1751      UnlockSemaphoreInfo(png_semaphore); 
    17521752#endif 
    17531753      if (logging != MagickFalse) 
     
    22492249      png_destroy_read_struct(&ping,&ping_info,&end_info); 
    22502250#if defined(PNG_SETJMP_NOT_THREAD_SAFE) 
    2251       RelinquishSemaphoreInfo(png_semaphore); 
     2251      UnlockSemaphoreInfo(png_semaphore); 
    22522252#endif 
    22532253      if (logging != MagickFalse) 
     
    22802280      png_destroy_read_struct(&ping,&ping_info,&end_info); 
    22812281#if defined(PNG_SETJMP_NOT_THREAD_SAFE) 
    2282       RelinquishSemaphoreInfo(png_semaphore); 
     2282      UnlockSemaphoreInfo(png_semaphore); 
    22832283#endif 
    22842284      if (quantum_info != (QuantumInfo *) NULL) 
     
    26362636      (void) SetImageBackgroundColor(image); 
    26372637#if defined(PNG_SETJMP_NOT_THREAD_SAFE) 
    2638       RelinquishSemaphoreInfo(png_semaphore); 
     2638      UnlockSemaphoreInfo(png_semaphore); 
    26392639#endif 
    26402640      if (logging != MagickFalse) 
     
    28412841  png_pixels=(unsigned char *) RelinquishMagickMemory(png_pixels); 
    28422842#if defined(PNG_SETJMP_NOT_THREAD_SAFE) 
    2843   RelinquishSemaphoreInfo(png_semaphore); 
     2843  UnlockSemaphoreInfo(png_semaphore); 
    28442844#endif 
    28452845 
     
    59455945  entry->note=ConstantString(JNGNote); 
    59465946  (void) RegisterMagickInfo(entry); 
     5947#if defined(PNG_SETJMP_NOT_THREAD_SAFE) 
     5948  png_semaphore=AllocateSemaphoreInfo(); 
     5949#endif 
    59475950  return(MagickImageCoderSignature); 
    59485951} 
     
    59765979  (void) UnregisterMagickInfo("JNG"); 
    59775980#if defined(PNG_SETJMP_NOT_THREAD_SAFE) 
    5978   AcquireSemaphoreInfo(&png_semaphore); 
    5979   RelinquishSemaphoreInfo(png_semaphore); 
    59805981  DestroySemaphoreInfo(&png_semaphore); 
    59815982#endif 
     
    62746275 
    62756276#if defined(PNG_SETJMP_NOT_THREAD_SAFE) 
    6276   AcquireSemaphoreInfo(&png_semaphore); 
     6277  LockSemaphoreInfo(png_semaphore); 
    62776278#endif 
    62786279 
     
    63216322      png_destroy_write_struct(&ping,&ping_info); 
    63226323#if defined(PNG_SETJMP_NOT_THREAD_SAFE) 
    6323       RelinquishSemaphoreInfo(png_semaphore); 
     6324      UnlockSemaphoreInfo(png_semaphore); 
    63246325#endif 
    63256326      return(MagickFalse); 
     
    74247425        png_pixels=(unsigned char *) RelinquishMagickMemory(png_pixels); 
    74257426#if defined(PNG_SETJMP_NOT_THREAD_SAFE) 
    7426       RelinquishSemaphoreInfo(png_semaphore); 
     7427      UnlockSemaphoreInfo(png_semaphore); 
    74277428#endif 
    74287429      return(MagickFalse); 
     
    77807781 
    77817782#if defined(PNG_SETJMP_NOT_THREAD_SAFE) 
    7782   RelinquishSemaphoreInfo(png_semaphore); 
     7783  UnlockSemaphoreInfo(png_semaphore); 
    77837784#endif 
    77847785 
  • ImageMagick/trunk/coders/tiff.c

    r423 r453  
    16601660  MagickInfo 
    16611661    *entry; 
    1662  
    1663   AcquireSemaphoreInfo(&tiff_semaphore); 
     1662   
     1663  if (tiff_semaphore == (SemaphoreInfo *) NULL) 
     1664    tiff_semaphore=AllocateSemaphoreInfo(); 
     1665  LockSemaphoreInfo(tiff_semaphore); 
    16641666  if (instantiate_key == MagickFalse) 
    16651667    { 
     
    16681670      instantiate_key=MagickTrue; 
    16691671    } 
    1670   RelinquishSemaphoreInfo(tiff_semaphore); 
     1672  UnlockSemaphoreInfo(tiff_semaphore); 
    16711673  *version='\0'; 
    16721674#if defined(TIFF_VERSION) 
     
    17831785  (void) UnregisterMagickInfo("TIFF"); 
    17841786  (void) UnregisterMagickInfo("TIFF64"); 
    1785   AcquireSemaphoreInfo(&tiff_semaphore); 
     1787  LockSemaphoreInfo(tiff_semaphore); 
    17861788  if (instantiate_key != MagickFalse) 
    17871789    if (MagickDeleteThreadKey(tiff_exception) == MagickFalse) 
    17881790      ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed"); 
    17891791  instantiate_key=MagickFalse; 
    1790   RelinquishSemaphoreInfo(tiff_semaphore); 
     1792  UnlockSemaphoreInfo(tiff_semaphore); 
    17911793  DestroySemaphoreInfo(&tiff_semaphore); 
    17921794} 
  • ImageMagick/trunk/magick/cache.c

    r446 r453  
    205205    { 
    206206      AcquireSemaphoreInfo(&cache_semaphore); 
     207      LockSemaphoreInfo(cache_semaphore); 
    207208      if ((cache_resources == (SplayTreeInfo *) NULL) && 
    208209          (instantiate_cache == MagickFalse)) 
     
    212213          instantiate_cache=MagickTrue; 
    213214        } 
    214       RelinquishSemaphoreInfo(cache_semaphore); 
     215      UnlockSemaphoreInfo(cache_semaphore); 
    215216    } 
    216217  (void) AddValueToSplayTree(cache_resources,cache_info,cache_info); 
     
    284285MagickExport MagickBooleanType CacheComponentGenesis(void) 
    285286{ 
    286   AcquireSemaphoreInfo(&cache_semaphore); 
    287   RelinquishSemaphoreInfo(cache_semaphore); 
     287  assert(cache_semaphore == (SemaphoreInfo *) NULL); 
     288  cache_semaphore=AllocateSemaphoreInfo(); 
    288289  return(MagickTrue); 
    289290} 
     
    309310MagickExport void CacheComponentTerminus(void) 
    310311{ 
    311   AcquireSemaphoreInfo(&cache_semaphore); 
     312  if (cache_semaphore == (SemaphoreInfo *) NULL) 
     313    AcquireSemaphoreInfo(&cache_semaphore); 
     314  LockSemaphoreInfo(cache_semaphore); 
    312315  if (cache_resources != (SplayTreeInfo *) NULL) 
    313316    cache_resources=DestroySplayTree(cache_resources); 
    314317  instantiate_cache=MagickFalse; 
    315   RelinquishSemaphoreInfo(cache_semaphore); 
     318  UnlockSemaphoreInfo(cache_semaphore); 
    316319  DestroySemaphoreInfo(&cache_semaphore); 
    317320} 
     
    598601    status; 
    599602 
    600   AcquireSemaphoreInfo(&cache_info->disk_semaphore); 
     603  LockSemaphoreInfo(cache_info->disk_semaphore); 
    601604  status=close(cache_info->file); 
    602605  cache_info->file=(-1); 
    603606  RelinquishMagickResource(FileResource,1); 
    604   RelinquishSemaphoreInfo(cache_info->disk_semaphore); 
     607  UnlockSemaphoreInfo(cache_info->disk_semaphore); 
    605608  return(status == -1 ? MagickFalse : MagickTrue); 
    606609} 
     
    617620  if (GetMagickResource(FileResource) < GetMagickResourceLimit(FileResource)) 
    618621    return; 
    619   AcquireSemaphoreInfo(&cache_semaphore); 
     622  LockSemaphoreInfo(cache_semaphore); 
    620623  if (cache_resources == (SplayTreeInfo *) NULL) 
    621624    { 
    622       RelinquishSemaphoreInfo(cache_semaphore); 
     625      UnlockSemaphoreInfo(cache_semaphore); 
    623626      return; 
    624627    } 
     
    646649  if (q != (CacheInfo *) NULL) 
    647650    (void) ClosePixelCacheOnDisk(q);  /* relinquish least recently used cache */ 
    648   RelinquishSemaphoreInfo(cache_semaphore); 
     651  UnlockSemaphoreInfo(cache_semaphore); 
    649652} 
    650653 
     
    674677    Open pixel cache on disk. 
    675678  */ 
    676   AcquireSemaphoreInfo(&cache_info->disk_semaphore); 
     679  LockSemaphoreInfo(cache_info->disk_semaphore); 
    677680  if (cache_info->file != -1) 
    678681    { 
    679       RelinquishSemaphoreInfo(cache_info->disk_semaphore); 
     682      UnlockSemaphoreInfo(cache_info->disk_semaphore); 
    680683      return(MagickTrue);  /* cache already open */ 
    681684    } 
     
    711714  if (file == -1) 
    712715    { 
    713       RelinquishSemaphoreInfo(cache_info->disk_semaphore); 
     716      UnlockSemaphoreInfo(cache_info->disk_semaphore); 
    714717      return(MagickFalse); 
    715718    } 
     
    717720  cache_info->file=file; 
    718721  cache_info->timestamp=time(0); 
    719   RelinquishSemaphoreInfo(cache_info->disk_semaphore); 
     722  UnlockSemaphoreInfo(cache_info->disk_semaphore); 
    720723  return(MagickTrue); 
    721724} 
  • ImageMagick/trunk/magick/coder.c

    r446 r453  
    256256MagickExport MagickBooleanType CoderComponentGenesis(void) 
    257257{ 
    258   AcquireSemaphoreInfo(&coder_semaphore); 
    259   RelinquishSemaphoreInfo(coder_semaphore); 
     258  assert(coder_semaphore == (SemaphoreInfo *) NULL); 
     259  coder_semaphore=AllocateSemaphoreInfo(); 
    260260  return(MagickTrue); 
    261261} 
     
    281281MagickExport void CoderComponentTerminus(void) 
    282282{ 
    283   AcquireSemaphoreInfo(&coder_semaphore); 
     283  if (coder_semaphore == (SemaphoreInfo *) NULL) 
     284    AcquireSemaphoreInfo(&coder_semaphore); 
     285  LockSemaphoreInfo(coder_semaphore); 
    284286  if (coder_list != (SplayTreeInfo *) NULL) 
    285287    coder_list=DestroySplayTree(coder_list); 
    286288  instantiate_coder=MagickFalse; 
    287   RelinquishSemaphoreInfo(coder_semaphore); 
     289  UnlockSemaphoreInfo(coder_semaphore); 
    288290  DestroySemaphoreInfo(&coder_semaphore); 
    289291} 
     
    402404    Generate coder list. 
    403405  */ 
    404   AcquireSemaphoreInfo(&coder_semaphore); 
     406  LockSemaphoreInfo(coder_semaphore); 
    405407  ResetSplayTreeIterator(coder_list); 
    406408  p=(const CoderInfo *) GetNextValueInSplayTree(coder_list); 
     
    412414    p=(const CoderInfo *) GetNextValueInSplayTree(coder_list); 
    413415  } 
    414   RelinquishSemaphoreInfo(coder_semaphore); 
     416  UnlockSemaphoreInfo(coder_semaphore); 
    415417  qsort((void *) coder_map,(size_t) i,sizeof(*coder_map),CoderInfoCompare); 
    416418  coder_map[i]=(CoderInfo *) NULL; 
     
    487489    Generate coder list. 
    488490  */ 
    489   AcquireSemaphoreInfo(&coder_semaphore); 
     491  LockSemaphoreInfo(coder_semaphore); 
    490492  ResetSplayTreeIterator(coder_list); 
    491493  p=(const CoderInfo *) GetNextValueInSplayTree(coder_list); 
     
    497499    p=(const CoderInfo *) GetNextValueInSplayTree(coder_list); 
    498500  } 
    499   RelinquishSemaphoreInfo(coder_semaphore); 
     501  UnlockSemaphoreInfo(coder_semaphore); 
    500502  qsort((void *) coder_map,(size_t) i,sizeof(*coder_map),CoderCompare); 
    501503  coder_map[i]=(char *) NULL; 
     
    532534    { 
    533535      AcquireSemaphoreInfo(&coder_semaphore); 
     536      LockSemaphoreInfo(coder_semaphore); 
    534537      if ((coder_list == (SplayTreeInfo *) NULL) && 
    535538          (instantiate_coder == MagickFalse)) 
     
    538541          instantiate_coder=MagickTrue; 
    539542        } 
    540       RelinquishSemaphoreInfo(coder_semaphore); 
     543      UnlockSemaphoreInfo(coder_semaphore); 
    541544    } 
    542545  return(coder_list != (SplayTreeInfo *) NULL ? MagickTrue : MagickFalse); 
  • ImageMagick/trunk/magick/color.c

    r446 r453  
    817817MagickExport MagickBooleanType ColorComponentGenesis(void) 
    818818{ 
    819   AcquireSemaphoreInfo(&color_semaphore); 
    820   RelinquishSemaphoreInfo(color_semaphore); 
     819  assert(color_semaphore == (SemaphoreInfo *) NULL); 
     820  color_semaphore=AllocateSemaphoreInfo(); 
    821821  return(MagickTrue); 
    822822} 
     
    860860MagickExport void ColorComponentTerminus(void) 
    861861{ 
    862   AcquireSemaphoreInfo(&color_semaphore); 
     862  if (color_semaphore == (SemaphoreInfo *) NULL) 
     863    AcquireSemaphoreInfo(&color_semaphore); 
     864  LockSemaphoreInfo(color_semaphore); 
    863865  if (color_list != (LinkedListInfo *) NULL) 
    864866    color_list=DestroyLinkedList(color_list,DestroyColorElement); 
    865867  instantiate_color=MagickFalse; 
    866   RelinquishSemaphoreInfo(color_semaphore); 
     868  UnlockSemaphoreInfo(color_semaphore); 
    867869  DestroySemaphoreInfo(&color_semaphore); 
    868870} 
     
    933935    Search for color tag. 
    934936  */ 
    935   AcquireSemaphoreInfo(&color_semaphore); 
     937  LockSemaphoreInfo(color_semaphore); 
    936938  ResetLinkedListIterator(color_list); 
    937939  p=(const ColorInfo *) GetNextValueInLinkedList(color_list); 
     
    948950    (void) InsertValueInLinkedList(color_list,0, 
    949951      RemoveElementByValueFromLinkedList(color_list,p)); 
    950   RelinquishSemaphoreInfo(color_semaphore); 
     952  UnlockSemaphoreInfo(color_semaphore); 
    951953  return(p); 
    952954} 
     
    10211023      break; 
    10221024  } 
     1025  if ((pixel->colorspace == HSLColorspace) || 
     1026      (pixel->colorspace == HSBColorspace)) 
     1027    { 
     1028      (void) FormatMagickString(component,MaxTextExtent,"%g%%", 
     1029        (double) (100.0*QuantumScale*color)); 
     1030      (void) ConcatenateMagickString(tuple,component,MaxTextExtent); 
     1031      return; 
     1032    } 
    10231033  if (compliance != SVGCompliance) 
    10241034    { 
     
    11391149    Generate color list. 
    11401150  */ 
    1141   AcquireSemaphoreInfo(&color_semaphore); 
     1151  LockSemaphoreInfo(color_semaphore); 
    11421152  ResetLinkedListIterator(color_list); 
    11431153  p=(const ColorInfo *) GetNextValueInLinkedList(color_list); 
     
    11491159    p=(const ColorInfo *) GetNextValueInLinkedList(color_list); 
    11501160  } 
    1151   RelinquishSemaphoreInfo(color_semaphore); 
     1161  UnlockSemaphoreInfo(color_semaphore); 
    11521162  qsort((void *) colors,(size_t) i,sizeof(*colors),ColorInfoCompare); 
    11531163  colors[i]=(ColorInfo *) NULL; 
     
    12321242    Generate color list. 
    12331243  */ 
    1234   AcquireSemaphoreInfo(&color_semaphore); 
     1244  LockSemaphoreInfo(color_semaphore); 
    12351245  ResetLinkedListIterator(color_list); 
    12361246  p=(const ColorInfo *) GetNextValueInLinkedList(color_list); 
     
    12421252    p=(const ColorInfo *) GetNextValueInLinkedList(color_list); 
    12431253  } 
    1244   RelinquishSemaphoreInfo(color_semaphore); 
     1254  UnlockSemaphoreInfo(color_semaphore); 
    12451255  qsort((void *) colors,(size_t) i,sizeof(*colors),ColorCompare); 
    12461256  colors[i]=(char *) NULL; 
     
    14481458    { 
    14491459      AcquireSemaphoreInfo(&color_semaphore); 
     1460      LockSemaphoreInfo(color_semaphore); 
    14501461      if ((color_list == (LinkedListInfo *) NULL) && 
    14511462          (instantiate_color == MagickFalse)) 
     
    14541465          instantiate_color=MagickTrue; 
    14551466        } 
    1456       RelinquishSemaphoreInfo(color_semaphore); 
     1467      UnlockSemaphoreInfo(color_semaphore); 
    14571468    } 
    14581469  return(color_list != (LinkedListInfo *) NULL ? MagickTrue : MagickFalse); 
  • ImageMagick/trunk/magick/configure.c

    r446 r453  
    115115MagickExport MagickBooleanType ConfigureComponentGenesis(void) 
    116116{ 
    117   AcquireSemaphoreInfo(&configure_semaphore); 
    118   RelinquishSemaphoreInfo(configure_semaphore); 
     117  assert(configure_semaphore == (SemaphoreInfo *) NULL); 
     118  configure_semaphore=AllocateSemaphoreInfo(); 
    119119  return(MagickTrue); 
    120120} 
     
    160160MagickExport void ConfigureComponentTerminus(void) 
    161161{ 
    162   AcquireSemaphoreInfo(&configure_semaphore); 
     162  if (configure_semaphore == (SemaphoreInfo *) NULL) 
     163    AcquireSemaphoreInfo(&configure_semaphore); 
     164  LockSemaphoreInfo(configure_semaphore); 
    163165  if (configure_list != (LinkedListInfo *) NULL) 
    164166    configure_list=DestroyLinkedList(configure_list,DestroyConfigureElement); 
    165167  configure_list=(LinkedListInfo *) NULL; 
    166168  instantiate_configure=MagickFalse; 
    167   RelinquishSemaphoreInfo(configure_semaphore); 
     169  UnlockSemaphoreInfo(configure_semaphore); 
    168170  DestroySemaphoreInfo(&configure_semaphore); 
    169171} 
     
    253255    Search for configure tag. 
    254256  */ 
    255   AcquireSemaphoreInfo(&configure_semaphore); 
     257  LockSemaphoreInfo(configure_semaphore); 
    256258  ResetLinkedListIterator(configure_list); 
    257259  p=(const ConfigureInfo *) GetNextValueInLinkedList(configure_list); 
     
    265267    (void) InsertValueInLinkedList(configure_list,0, 
    266268      RemoveElementByValueFromLinkedList(configure_list,p)); 
    267   RelinquishSemaphoreInfo(configure_semaphore); 
     269  UnlockSemaphoreInfo(configure_semaphore); 
    268270  return(p); 
    269271} 
     
    349351    Generate configure list. 
    350352  */ 
    351   AcquireSemaphoreInfo(&configure_semaphore); 
     353  LockSemaphoreInfo(configure_semaphore); 
    352354  ResetLinkedListIterator(configure_list); 
    353355  p=(const ConfigureInfo *) GetNextValueInLinkedList(configure_list); 
     
    359361    p=(const ConfigureInfo *) GetNextValueInLinkedList(configure_list); 
    360362  } 
    361   RelinquishSemaphoreInfo(configure_semaphore); 
     363  UnlockSemaphoreInfo(configure_semaphore); 
    362364  qsort((void *) options,(size_t) i,sizeof(*options),ConfigureInfoCompare); 
    363365  options[i]=(ConfigureInfo *) NULL; 
     
    436438  if (p == (const ConfigureInfo *) NULL) 
    437439    return((char **) NULL); 
    438   AcquireSemaphoreInfo(&configure_semaphore); 
    439   RelinquishSemaphoreInfo(configure_semaphore); 
    440440  options=(char **) AcquireQuantumMemory((size_t) 
    441441    GetNumberOfElementsInLinkedList(configure_list)+1UL,sizeof(*options)); 
    442442  if (options == (char **) NULL) 
    443443    return((char **) NULL); 
    444   AcquireSemaphoreInfo(&configure_semaphore); 
     444  LockSemaphoreInfo(configure_semaphore); 
    445445  ResetLinkedListIterator(configure_list); 
    446446  p=(const ConfigureInfo *) GetNextValueInLinkedList(configure_list); 
     
    452452    p=(const ConfigureInfo *) GetNextValueInLinkedList(configure_list); 
    453453  } 
    454   RelinquishSemaphoreInfo(configure_semaphore); 
     454  UnlockSemaphoreInfo(configure_semaphore); 
    455455  qsort((void *) options,(size_t) i,sizeof(*options),ConfigureCompare); 
    456456  options[i]=(char *) NULL; 
     
    870870    { 
    871871      AcquireSemaphoreInfo(&configure_semaphore); 
     872      LockSemaphoreInfo(configure_semaphore); 
    872873      if ((configure_list == (LinkedListInfo *) NULL) && 
    873874          (instantiate_configure == MagickFalse)) 
     
    876877          instantiate_configure=MagickTrue; 
    877878        } 
    878       RelinquishSemaphoreInfo(configure_semaphore); 
     879      UnlockSemaphoreInfo(configure_semaphore); 
    879880    } 
    880881  return(configure_list != (LinkedListInfo *) NULL ? MagickTrue : MagickFalse); 
  • ImageMagick/trunk/magick/constitute.c

    r446 r453  
    9595MagickExport MagickBooleanType ConstituteComponentGenesis(void) 
    9696{ 
    97   AcquireSemaphoreInfo(&constitute_semaphore); 
    98   RelinquishSemaphoreInfo(constitute_semaphore); 
     97  assert(constitute_semaphore == (SemaphoreInfo *) NULL); 
     98  constitute_semaphore=AllocateSemaphoreInfo(); 
    9999  return(MagickTrue); 
    100100} 
     
    120120MagickExport void ConstituteComponentTerminus(void) 
    121121{ 
    122   if (constitute_semaphore != (SemaphoreInfo *) NULL) 
    123     DestroySemaphoreInfo(&constitute_semaphore); 
     122  if (constitute_semaphore == (SemaphoreInfo *) NULL) 
     123    AcquireSemaphoreInfo(&constitute_semaphore); 
     124  DestroySemaphoreInfo(&constitute_semaphore); 
    124125} 
    125126 
     
    515516      thread_support=GetMagickThreadSupport(magick_info); 
    516517      if ((thread_support & DecoderThreadSupport) == 0) 
    517         AcquireSemaphoreInfo(&constitute_semaphore); 
     518        { 
     519          AcquireSemaphoreInfo(&constitute_semaphore); 
     520          LockSemaphoreInfo(constitute_semaphore); 
     521        } 
    518522      image=GetImageDecoder(magick_info)(read_info,exception); 
    519523      if ((thread_support & DecoderThreadSupport) == 0) 
    520         RelinquishSemaphoreInfo(constitute_semaphore); 
     524        UnlockSemaphoreInfo(constitute_semaphore); 
    521525    } 
    522526  else 
     
    547551      *read_info->filename='\0'; 
    548552      if (GetDelegateThreadSupport(delegate_info) == MagickFalse) 
    549         AcquireSemaphoreInfo(&constitute_semaphore); 
     553        { 
     554          AcquireSemaphoreInfo(&constitute_semaphore); 
     555          LockSemaphoreInfo(constitute_semaphore); 
     556        } 
    550557      (void) InvokeDelegate(read_info,image,read_info->magick,(char *) NULL, 
    551558        exception); 
    552559      if (GetDelegateThreadSupport(delegate_info) == MagickFalse) 
    553         RelinquishSemaphoreInfo(constitute_semaphore); 
     560        UnlockSemaphoreInfo(constitute_semaphore); 
    554561      image=DestroyImageList(image); 
    555562      read_info->temporary=MagickTrue; 
     
    571578      thread_support=GetMagickThreadSupport(magick_info); 
    572579      if ((thread_support & DecoderThreadSupport) == 0) 
    573         AcquireSemaphoreInfo(&constitute_semaphore); 
     580        { 
     581          AcquireSemaphoreInfo(&constitute_semaphore); 
     582          LockSemaphoreInfo(constitute_semaphore); 
     583        } 
    574584      image=(Image *) (GetImageDecoder(magick_info))(read_info,exception); 
    575585      if ((thread_support & DecoderThreadSupport) == 0) 
    576         RelinquishSemaphoreInfo(constitute_semaphore); 
     586        UnlockSemaphoreInfo(constitute_semaphore); 
    577587    } 
    578588  if (read_info->temporary != MagickFalse) 
     
    11001110      thread_support=GetMagickThreadSupport(magick_info); 
    11011111      if ((thread_support & EncoderThreadSupport) == 0) 
    1102         AcquireSemaphoreInfo(&constitute_semaphore); 
     1112        { 
     1113          AcquireSemaphoreInfo(&constitute_semaphore); 
     1114          LockSemaphoreInfo(constitute_semaphore); 
     1115        } 
    11031116      status=GetImageEncoder(magick_info)(write_info,image); 
    11041117      if ((thread_support & EncoderThreadSupport) == 0) 
    1105         RelinquishSemaphoreInfo(constitute_semaphore); 
     1118        UnlockSemaphoreInfo(constitute_semaphore); 
    11061119    } 
    11071120  else 
     
    11161129          *write_info->filename='\0'; 
    11171130          if (GetDelegateThreadSupport(delegate_info) == MagickFalse) 
    1118             AcquireSemaphoreInfo(&constitute_semaphore); 
     1131            { 
     1132              AcquireSemaphoreInfo(&constitute_semaphore); 
     1133              LockSemaphoreInfo(constitute_semaphore); 
     1134            } 
    11191135          status=InvokeDelegate(write_info,image,(char *) NULL, 
    11201136            write_info->magick,&image->exception); 
    11211137          if (GetDelegateThreadSupport(delegate_info) == MagickFalse) 
    1122             RelinquishSemaphoreInfo(constitute_semaphore); 
     1138            UnlockSemaphoreInfo(constitute_semaphore); 
    11231139          (void) CopyMagickString(image->filename,filename,MaxTextExtent); 
    11241140        } 
     
    11471163              thread_support=GetMagickThreadSupport(magick_info); 
    11481164              if ((thread_support & EncoderThreadSupport) == 0) 
    1149                 AcquireSemaphoreInfo(&constitute_semaphore); 
     1165                { 
     1166                  AcquireSemaphoreInfo(&constitute_semaphore); 
     1167                  LockSemaphoreInfo(constitute_semaphore); 
     1168                } 
    11501169              status=GetImageEncoder(magick_info)(write_info,image); 
    11511170              if ((thread_support & EncoderThreadSupport) == 0) 
    1152                 RelinquishSemaphoreInfo(constitute_semaphore); 
     1171                UnlockSemaphoreInfo(constitute_semaphore); 
    11531172            } 
    11541173        } 
  • ImageMagick/trunk/magick/delegate.c

    r446 r453  
    165165MagickExport MagickBooleanType DelegateComponentGenesis(void) 
    166166{ 
    167   AcquireSemaphoreInfo(&delegate_semaphore); 
    168   RelinquishSemaphoreInfo(delegate_semaphore); 
     167  assert(delegate_semaphore == (SemaphoreInfo *) NULL); 
     168  delegate_semaphore=AllocateSemaphoreInfo(); 
    169169  return(MagickTrue); 
    170170} 
     
    210210MagickExport void DelegateComponentTerminus(void) 
    211211{ 
    212   AcquireSemaphoreInfo(&delegate_semaphore); 
     212  if (delegate_semaphore == (SemaphoreInfo *) NULL) 
     213    AcquireSemaphoreInfo(&delegate_semaphore); 
     214  LockSemaphoreInfo(delegate_semaphore); 
    213215  if (delegate_list != (LinkedListInfo *) NULL) 
    214216    delegate_list=DestroyLinkedList(delegate_list,DestroyDelegate); 
    215217  instantiate_delegate=MagickFalse; 
    216   RelinquishSemaphoreInfo(delegate_semaphore); 
     218  UnlockSemaphoreInfo(delegate_semaphore); 
    217219  DestroySemaphoreInfo(&delegate_semaphore); 
    218220} 
     
    380382    Search for named delegate. 
    381383  */ 
    382   AcquireSemaphoreInfo(&delegate_semaphore); 
     384  LockSemaphoreInfo(delegate_semaphore); 
    383385  ResetLinkedListIterator(delegate_list); 
    384386  p=(const DelegateInfo *) GetNextValueInLinkedList(delegate_list); 
     
    413415    (void) InsertValueInLinkedList(delegate_list,0, 
    414416      RemoveElementByValueFromLinkedList(delegate_list,p)); 
    415   RelinquishSemaphoreInfo(delegate_semaphore); 
     417  UnlockSemaphoreInfo(delegate_semaphore); 
    416418  return(p); 
    417419} 
     
    504506    Generate delegate list. 
    505507  */ 
    506   AcquireSemaphoreInfo(&delegate_semaphore); 
     508  LockSemaphoreInfo(delegate_semaphore); 
    507509  ResetLinkedListIterator(delegate_list); 
    508510  p=(const DelegateInfo *) GetNextValueInLinkedList(delegate_list); 
     
    515517    p=(const DelegateInfo *) GetNextValueInLinkedList(delegate_list); 
    516518  } 
    517   RelinquishSemaphoreInfo(delegate_semaphore); 
     519  UnlockSemaphoreInfo(delegate_semaphore); 
    518520  qsort((void *) delegates,(size_t) i,sizeof(*delegates),DelegateInfoCompare); 
    519521  delegates[i]=(DelegateInfo *) NULL; 
     
    597599  if (delegates == (char **) NULL) 
    598600    return((char **) NULL); 
    599   AcquireSemaphoreInfo(&delegate_semaphore); 
     601  LockSemaphoreInfo(delegate_semaphore); 
    600602  ResetLinkedListIterator(delegate_list); 
    601603  p=(const DelegateInfo *) GetNextValueInLinkedList(delegate_list); 
     
    610612    p=(const DelegateInfo *) GetNextValueInLinkedList(delegate_list); 
    611613  } 
    612   RelinquishSemaphoreInfo(delegate_semaphore); 
     614  UnlockSemaphoreInfo(delegate_semaphore); 
    613615  qsort((void *) delegates,(size_t) i,sizeof(*delegates),DelegateCompare); 
    614616  delegates[i]=(char *) NULL; 
     
    708710    { 
    709711      AcquireSemaphoreInfo(&delegate_semaphore); 
     712      LockSemaphoreInfo(delegate_semaphore); 
    710713      if ((delegate_list == (LinkedListInfo *) NULL) && 
    711714          (instantiate_delegate == MagickFalse)) 
     
    714717          instantiate_delegate=MagickTrue; 
    715718        } 
    716       RelinquishSemaphoreInfo(delegate_semaphore); 
     719      UnlockSemaphoreInfo(delegate_semaphore); 
    717720    } 
    718721  return(delegate_list != (LinkedListInfo *) NULL ? MagickTrue : MagickFalse); 
  • ImageMagick/trunk/magick/deprecate.c

    r446 r453  
    37593759{ 
    37603760  (void) LogMagickEvent(DeprecateEvent,GetMagickModule(),"last use: v5.5.7"); 
    3761   RelinquishSemaphoreInfo(*semaphore_info); 
     3761  UnlockSemaphoreInfo(*semaphore_info); 
    37623762} 
    37633763 
  • ImageMagick/trunk/magick/exception.c

    r114 r453  
    159159  if (exception->exceptions  == (void *) NULL) 
    160160    return; 
    161   AcquireSemaphoreInfo(&exception->semaphore); 
     161  LockSemaphoreInfo(exception->semaphore); 
    162162  p=(ExceptionInfo *) RemoveLastElementFromLinkedList((LinkedListInfo *) 
    163163    exception->exceptions); 
     
    171171  exception->reason=(char *) NULL; 
    172172  exception->description=(char *) NULL; 
    173   RelinquishSemaphoreInfo(exception->semaphore); 
     173  UnlockSemaphoreInfo(exception->semaphore); 
    174174  errno=0; 
    175175} 
     
    207207  if (exception->exceptions  == (void *) NULL) 
    208208    return; 
    209   AcquireSemaphoreInfo(&exception->semaphore); 
     209  LockSemaphoreInfo(exception->semaphore); 
    210210  ResetLinkedListIterator((LinkedListInfo *) exception->exceptions); 
    211211  p=(const ExceptionInfo *) GetNextValueInLinkedList((LinkedListInfo *) 
     
    222222      exception->exceptions); 
    223223  } 
    224   RelinquishSemaphoreInfo(exception->semaphore); 
     224  UnlockSemaphoreInfo(exception->semaphore); 
    225225  ClearMagickException(exception); 
    226226} 
     
    379379  assert(exception != (ExceptionInfo *) NULL); 
    380380  assert(exception->signature == MagickSignature); 
    381   AcquireSemaphoreInfo(&exception->semaphore); 
     381  LockSemaphoreInfo(exception->semaphore); 
    382382  exception->severity=UndefinedException; 
    383383  if (exception->exceptions != (void *) NULL) 
     
    387387  if (exception->relinquish != MagickFalse) 
    388388    exception->signature=(~MagickSignature); 
    389   RelinquishSemaphoreInfo(exception->semaphore); 
     389  UnlockSemaphoreInfo(exception->semaphore); 
    390390  DestroySemaphoreInfo(&exception->semaphore); 
    391391  if (relinquish != MagickFalse) 
     
    422422  exception->severity=UndefinedException; 
    423423  exception->exceptions=(void *) NewLinkedList(0); 
     424  exception->semaphore=AllocateSemaphoreInfo(); 
    424425  exception->signature=MagickSignature; 
    425426} 
     
    613614  if (relative->exceptions == (void *) NULL) 
    614615    return; 
    615   AcquireSemaphoreInfo(&exception->semaphore); 
     616  LockSemaphoreInfo(exception->semaphore); 
    616617  ResetLinkedListIterator((LinkedListInfo *) relative->exceptions); 
    617618  p=(const ExceptionInfo *) GetNextValueInLinkedList((LinkedListInfo *) 
     
    623624      relative->exceptions); 
    624625  } 
    625   RelinquishSemaphoreInfo(exception->semaphore); 
     626  UnlockSemaphoreInfo(exception->semaphore); 
    626627} 
    627628 
  • ImageMagick/trunk/magick/gem.c

    r432 r453  
    373373  if (delta == 0.0) 
    374374    return; 
    375   if (red == max) 
    376     *hue=((((max-blue)/6.0)+(delta/2.0))-(((max-green)/6.0)+(delta/2.0)))/delta; 
     375  if ((MagickRealType) red == max) 
     376    *hue=(double) ((green-(MagickRealType) blue)/delta); 
    377377  else 
    378     if (green == max) 
    379       *hue=(1.0/3.0)+((((max-red)/6.0)+(delta/2.0))-(((max-blue)/6.0)+ 
    380         (delta/2.0)))/delta; 
     378    if ((MagickRealType) green == max) 
     379      *hue=(double) (2.0+(blue-(MagickRealType) red)/delta); 
    381380    else 
    382       if (blue == max) 
    383         *hue=(2.0/3.0)+((((max-green)/6.0)+(delta/2.0))-(((max-red)/6.0)+ 
    384           (delta/2.0)))/delta; 
     381      *hue=(double) (4.0+(red-(MagickRealType) green)/delta); 
     382  *hue/=6.0; 
    385383  if (*hue < 0.0) 
    386384    *hue+=1.0; 
    387   if (*hue > 1.0) 
    388     *hue-=1.0; 
    389385} 
    390386 
  • ImageMagick/trunk/magick/image.c

    r404 r453  
    16281628  if (image->debug != MagickFalse) 
    16291629    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename); 
    1630   AcquireSemaphoreInfo(&image->semaphore); 
     1630  LockSemaphoreInfo(image->semaphore); 
    16311631  reference_count=image->reference_count; 
    1632   RelinquishSemaphoreInfo(image->semaphore); 
     1632  UnlockSemaphoreInfo(image->semaphore); 
    16331633  return(reference_count); 
    16341634} 
     
    20672067    return(MagickTrue); 
    20682068  clone_image=CloneImage(*image,0,0,MagickTrue,exception); 
    2069   AcquireSemaphoreInfo(&(*image)->semaphore); 
     2069  LockSemaphoreInfo((*image)->semaphore); 
    20702070  (*image)->reference_count--; 
    2071   RelinquishSemaphoreInfo((*image)->semaphore); 
     2071  UnlockSemaphoreInfo((*image)->semaphore); 
    20722072  *image=clone_image; 
    20732073  return(MagickTrue); 
  • ImageMagick/trunk/magick/locale.c

    r446 r453  
    255255    Generate locale list. 
    256256  */ 
    257   AcquireSemaphoreInfo(&locale_semaphore); 
     257  LockSemaphoreInfo(locale_semaphore); 
    258258  ResetSplayTreeIterator(locale_list); 
    259259  p=(const LocaleInfo *) GetNextValueInSplayTree(locale_list); 
     
    265265    p=(const LocaleInfo *) GetNextValueInSplayTree(locale_list); 
    266266  } 
    267   RelinquishSemaphoreInfo(locale_semaphore); 
     267  UnlockSemaphoreInfo(locale_semaphore); 
    268268  qsort((void *) messages,(size_t) i,sizeof(*messages),LocaleInfoCompare); 
    269269  messages[i]=(LocaleInfo *) NULL; 
     
    343343  if (p == (const LocaleInfo *) NULL) 
    344344    return((char **) NULL); 
    345   AcquireSemaphoreInfo(&locale_semaphore); 
    346   RelinquishSemaphoreInfo(locale_semaphore); 
    347345  messages=(char **) AcquireQuantumMemory((size_t) 
    348346    GetNumberOfNodesInSplayTree(locale_list)+1UL,sizeof(*messages)); 
    349347  if (messages == (char **) NULL) 
    350348    return((char **) NULL); 
    351   AcquireSemaphoreInfo(&locale_semaphore); 
     349  LockSemaphoreInfo(locale_semaphore); 
    352350  p=(const LocaleInfo *) GetNextValueInSplayTree(locale_list); 
    353351  for (i=0; p != (const LocaleInfo *) NULL; ) 
     
    358356    p=(const LocaleInfo *) GetNextValueInSplayTree(locale_list); 
    359357  } 
    360   RelinquishSemaphoreInfo(locale_semaphore); 
     358  UnlockSemaphoreInfo(locale_semaphore); 
    361359  qsort((void *) messages,(size_t) i,sizeof(*messages),LocaleTagCompare); 
    362360  messages[i]=(char *) NULL; 
     
    553551    { 
    554552      AcquireSemaphoreInfo(&locale_semaphore); 
     553      LockSemaphoreInfo(locale_semaphore); 
    555554      if ((locale_list == (SplayTreeInfo *) NULL) && 
    556555          (instantiate_locale == MagickFalse)) 
     
    580579          instantiate_locale=MagickTrue; 
    581580        } 
    582       RelinquishSemaphoreInfo(locale_semaphore); 
     581      UnlockSemaphoreInfo(locale_semaphore); 
    583582    } 
    584583  return(locale_list != (SplayTreeInfo *) NULL ? MagickTrue : MagickFalse); 
     
    10491048MagickExport MagickBooleanType LocaleComponentGenesis(void) 
    10501049{ 
    1051   AcquireSemaphoreInfo(&locale_semaphore); 
    1052   RelinquishSemaphoreInfo(locale_semaphore); 
     1050  assert(locale_semaphore == (SemaphoreInfo *) NULL); 
     1051  locale_semaphore=AllocateSemaphoreInfo(); 
    10531052  return(MagickTrue); 
    10541053} 
     
    10741073MagickExport void LocaleComponentTerminus(void) 
    10751074{ 
    1076   AcquireSemaphoreInfo(&locale_semaphore); 
     1075  if (locale_semaphore == (SemaphoreInfo *) NULL) 
     1076    AcquireSemaphoreInfo(&locale_semaphore); 
     1077  LockSemaphoreInfo(locale_semaphore); 
    10771078  if (locale_list != (SplayTreeInfo *) NULL) 
    10781079    locale_list=DestroySplayTree(locale_list); 
    10791080  instantiate_locale=MagickFalse; 
    1080   RelinquishSemaphoreInfo(locale_semaphore); 
     1081  UnlockSemaphoreInfo(locale_semaphore); 
    10811082  DestroySemaphoreInfo(&locale_semaphore); 
    10821083} 
  • ImageMagick/trunk/magick/log.c

    r446 r453  
    226226  log_info=GetLogInfo("*",exception); 
    227227  exception=DestroyExceptionInfo(exception); 
    228   AcquireSemaphoreInfo(&log_semaphore); 
     228  LockSemaphoreInfo(log_semaphore); 
    229229  if (log_info->file != (FILE *) NULL) 
    230230    { 
     
    234234      log_info->file=(FILE *) NULL; 
    235235    } 
    236   RelinquishSemaphoreInfo(log_semaphore); 
     236  UnlockSemaphoreInfo(log_semaphore); 
    237237} 
    238238 
     
    279279    Search for log tag. 
    280280  */ 
    281   AcquireSemaphoreInfo(&log_semaphore); 
     281  LockSemaphoreInfo(log_semaphore); 
    282282  ResetLinkedListIterator(log_list); 
    283283  p=(LogInfo *) GetNextValueInLinkedList(log_list); 
     
    291291    (void) InsertValueInLinkedList(log_list,0, 
    292292      RemoveElementByValueFromLinkedList(log_list,p)); 
    293   RelinquishSemaphoreInfo(log_semaphore); 
     293  UnlockSemaphoreInfo(log_semaphore); 
    294294  return(p); 
    295295} 
     
    372372    Generate log list. 
    373373  */ 
    374   AcquireSemaphoreInfo(&log_semaphore); 
     374  LockSemaphoreInfo(log_semaphore); 
    375375  ResetLinkedListIterator(log_list); 
    376376  p=(const LogInfo *) GetNextValueInLinkedList(log_list); 
     
    382382    p=(const LogInfo *) GetNextValueInLinkedList(log_list); 
    383383  } 
    384   RelinquishSemaphoreInfo(log_semaphore); 
     384  UnlockSemaphoreInfo(log_semaphore); 
    385385  qsort((void *) preferences,(size_t) i,sizeof(*preferences),LogInfoCompare); 
    386386  preferences[i]=(LogInfo *) NULL; 
     
    465465    Generate log list. 
    466466  */ 
    467   AcquireSemaphoreInfo(&log_semaphore); 
     467  LockSemaphoreInfo(log_semaphore); 
    468468  ResetLinkedListIterator(log_list); 
    469469  p=(const LogInfo *) GetNextValueInLinkedList(log_list); 
     
    475475    p=(const LogInfo *) GetNextValueInLinkedList(log_list); 
    476476  } 
    477   RelinquishSemaphoreInfo(log_semaphore); 
     477  UnlockSemaphoreInfo(log_semaphore); 
    478478  qsort((void *) preferences,(size_t) i,sizeof(*preferences),LogCompare); 
    479479  preferences[i]=(char *) NULL; 
     
    532532    { 
    533533      AcquireSemaphoreInfo(&log_semaphore); 
     534      LockSemaphoreInfo(log_semaphore); 
    534535      if ((log_list == (LinkedListInfo *) NULL) && 
    535536          (instantiate_log == MagickFalse)) 
     
    538539          instantiate_log=MagickTrue; 
    539540        } 
    540       RelinquishSemaphoreInfo(log_semaphore); 
     541      UnlockSemaphoreInfo(log_semaphore); 
    541542    } 
    542543  return(log_list != (LinkedListInfo *) NULL ? MagickTrue : MagickFalse); 
     
    683684MagickExport MagickBooleanType LogComponentGenesis(void) 
    684685{ 
    685   AcquireSemaphoreInfo(&log_semaphore); 
    686   RelinquishSemaphoreInfo(log_semaphore); 
     686  assert(log_semaphore == (SemaphoreInfo *) NULL); 
     687  log_semaphore=AllocateSemaphoreInfo(); 
    687688  return(MagickTrue); 
    688689} 
     
    735736MagickExport void LogComponentTerminus(void) 
    736737{ 
    737   AcquireSemaphoreInfo(&log_semaphore); 
     738  if (log_semaphore == (SemaphoreInfo *) NULL) 
     739    AcquireSemaphoreInfo(&log_semaphore); 
     740  LockSemaphoreInfo(log_semaphore); 
    738741  if (log_list != (LinkedListInfo *) NULL) 
    739742    log_list=DestroyLinkedList(log_list,DestroyLogElement); 
    740743  instantiate_log=MagickFalse; 
    741   RelinquishSemaphoreInfo(log_semaphore); 
     744  UnlockSemaphoreInfo(log_semaphore); 
    742745  DestroySemaphoreInfo(&log_semaphore); 
    743746} 
     
    11241127  log_info=(LogInfo *) GetLogInfo("*",exception); 
    11251128  exception=DestroyExceptionInfo(exception); 
    1126   AcquireSemaphoreInfo(&log_semaphore); 
     1129  LockSemaphoreInfo(log_semaphore); 
    11271130  if ((log_info->event_mask & type) == 0) 
    11281131    { 
    1129       RelinquishSemaphoreInfo(log_semaphore); 
     1132      UnlockSemaphoreInfo(log_semaphore); 
    11301133      return(MagickTrue); 
    11311134    } 
     
    11421145    { 
    11431146      (void) ContinueTimer((TimerInfo *) &log_info->timer); 
    1144       RelinquishSemaphoreInfo(log_semaphore); 
     1147      UnlockSemaphoreInfo(log_semaphore); 
    11451148      return(MagickFalse); 
    11461149    } 
     
    11851188            { 
    11861189              (void) ContinueTimer((TimerInfo *) &log_info->timer); 
    1187               RelinquishSemaphoreInfo(log_semaphore); 
     1190              UnlockSemaphoreInfo(log_semaphore); 
    11881191              return(MagickFalse); 
    11891192            } 
     
    11931196          if (log_info->file == (FILE *) NULL) 
    11941197            { 
    1195               RelinquishSemaphoreInfo(log_semaphore); 
     1198              UnlockSemaphoreInfo(log_semaphore); 
    11961199              return(MagickFalse); 
    11971200            } 
     
    12191222  text=(char  *) RelinquishMagickMemory(text); 
    12201223  (void) ContinueTimer((TimerInfo *) &log_info->timer); 
    1221   RelinquishSemaphoreInfo(log_semaphore); 
     1224  UnlockSemaphoreInfo(log_semaphore); 
    12221225  return(MagickTrue); 
    12231226} 
     
    16821685  exception=DestroyExceptionInfo(exception); 
    16831686  option=ParseMagickOption(MagickLogEventOptions,MagickTrue,events); 
    1684   AcquireSemaphoreInfo(&log_semaphore); 
     1687  LockSemaphoreInfo(log_semaphore); 
    16851688  log_info=(LogInfo *) GetValueFromLinkedList(log_list,0); 
    16861689  log_info->event_mask=(LogEventType) option; 
    16871690  if (option == -1) 
    16881691    log_info->event_mask=UndefinedEvents; 
    1689   RelinquishSemaphoreInfo(log_semaphore); 
     1692  UnlockSemaphoreInfo(log_semaphore); 
    16901693  return(log_info->event_mask); 
    16911694} 
     
    17241727  log_info=(LogInfo *) GetLogInfo("*",exception); 
    17251728  exception=DestroyExceptionInfo(exception); 
    1726   AcquireSemaphoreInfo(&log_semaphore); 
     1729  LockSemaphoreInfo(log_semaphore); 
    17271730  if (log_info->format != (char *) NULL) 
    17281731    log_info->format=DestroyString(log_info->format); 
    17291732  log_info->format=ConstantString(format); 
    1730   RelinquishSemaphoreInfo(log_semaphore); 
     1733  UnlockSemaphoreInfo(log_semaphore); 
    17311734} 
    17321735 
  • ImageMagick/trunk/magick/magic.c

    r446 r453  
    260260    Search for magic tag. 
    261261  */ 
    262   AcquireSemaphoreInfo(&magic_semaphore); 
     262  LockSemaphoreInfo(magic_semaphore); 
    263263  ResetLinkedListIterator(magic_list); 
    264264  p=(const MagicInfo *) GetNextValueInLinkedList(magic_list); 
     
    274274    (void) InsertValueInLinkedList(magic_list,0, 
    275275      RemoveElementByValueFromLinkedList(magic_list,p)); 
    276   RelinquishSemaphoreInfo(magic_semaphore); 
     276  UnlockSemaphoreInfo(magic_semaphore); 
    277277  return(p); 
    278278} 
     
    357357    Generate magic list. 
    358358  */ 
    359   AcquireSemaphoreInfo(&magic_semaphore); 
     359  LockSemaphoreInfo(magic_semaphore); 
    360360  ResetLinkedListIterator(magic_list); 
    361361  p=(const MagicInfo *) GetNextValueInLinkedList(magic_list); 
     
    367367    p=(const MagicInfo *) GetNextValueInLinkedList(magic_list); 
    368368  } 
    369   RelinquishSemaphoreInfo(magic_semaphore); 
     369  UnlockSemaphoreInfo(magic_semaphore); 
    370370  qsort((void *) aliases,(size_t) i,sizeof(*aliases),MagicInfoCompare); 
    371371  aliases[i]=(MagicInfo *) NULL; 
     
    449449  if (aliases == (char **) NULL) 
    450450    return((char **) NULL); 
    451   AcquireSemaphoreInfo(&magic_semaphore); 
     451  LockSemaphoreInfo(magic_semaphore); 
    452452  ResetLinkedListIterator(magic_list); 
    453453  p=(const MagicInfo *) GetNextValueInLinkedList(magic_list); 
     
    459459    p=(const MagicInfo *) GetNextValueInLinkedList(magic_list); 
    460460  } 
    461   RelinquishSemaphoreInfo(magic_semaphore); 
     461  UnlockSemaphoreInfo(magic_semaphore); 
    462462  qsort((void *) aliases,(size_t) i,sizeof(*aliases),MagicCompare); 
    463463  aliases[i]=(char *) NULL; 
     
    524524    { 
    525525      AcquireSemaphoreInfo(&magic_semaphore); 
     526      LockSemaphoreInfo(magic_semaphore); 
    526527      if ((magic_list == (LinkedListInfo *) NULL) && 
    527528          (instantiate_magic == MagickFalse)) 
     
    530531          instantiate_magic=MagickTrue; 
    531532        } 
    532       RelinquishSemaphoreInfo(magic_semaphore); 
     533      UnlockSemaphoreInfo(magic_semaphore); 
    533534    } 
    534535  return(magic_list != (LinkedListInfo *) NULL ? MagickTrue : MagickFalse); 
     
    10111012MagickExport MagickBooleanType MagicComponentGenesis(void) 
    10121013{ 
    1013   AcquireSemaphoreInfo(&magic_semaphore); 
    1014   RelinquishSemaphoreInfo(magic_semaphore); 
     1014  assert(magic_semaphore == (SemaphoreInfo *) NULL); 
     1015  magic_semaphore=AllocateSemaphoreInfo(); 
    10151016  return(MagickTrue); 
    10161017} 
     
    10581059MagickExport void MagicComponentTerminus(void) 
    10591060{ 
    1060   AcquireSemaphoreInfo(&magic_semaphore); 
     1061  if (magic_semaphore == (SemaphoreInfo *) NULL) 
     1062    AcquireSemaphoreInfo(&magic_semaphore); 
     1063  LockSemaphoreInfo(magic_semaphore); 
    10611064  if (magic_list != (LinkedListInfo *) NULL) 
    10621065    magic_list=DestroyLinkedList(magic_list,DestroyMagicElement); 
    10631066  instantiate_magic=MagickFalse; 
    1064   RelinquishSemaphoreInfo(magic_semaphore); 
     1067  UnlockSemaphoreInfo(magic_semaphore); 
    10651068  DestroySemaphoreInfo(&magic_semaphore); 
    10661069} 
  • ImageMagick/trunk/magick/magick.c

    r446 r453  
    229229    return(MagickFalse); 
    230230  status=MagickFalse; 
    231   AcquireSemaphoreInfo(&magick_semaphore); 
     231  LockSemaphoreInfo(magick_semaphore); 
    232232  ResetSplayTreeIterator(magick_list); 
    233233  p=(const MagickInfo *) GetNextValueInSplayTree(magick_list); 
     
    243243    p=(const MagickInfo *) GetNextValueInSplayTree(magick_list); 
    244244  } 
    245   RelinquishSemaphoreInfo(magick_semaphore); 
     245  UnlockSemaphoreInfo(magick_semaphore); 
    246246  return(status); 
    247247} 
     
    413413        (void) OpenModules(exception); 
    414414#endif 
    415       AcquireSemaphoreInfo(&magick_semaphore); 
     415      LockSemaphoreInfo(magick_semaphore); 
    416416      ResetSplayTreeIterator(magick_list); 
    417417      p=(const MagickInfo *) GetNextValueInSplayTree(magick_list); 
    418       RelinquishSemaphoreInfo(magick_semaphore); 
     418      UnlockSemaphoreInfo(magick_semaphore); 
    419419      return(p); 
    420420    } 
     
    422422    Find name in list. 
    423423  */ 
    424   AcquireSemaphoreInfo(&magick_semaphore); 
     424  LockSemaphoreInfo(magick_semaphore); 
    425425  ResetSplayTreeIterator(magick_list); 
    426426  p=(const MagickInfo *) GetNextValueInSplayTree(magick_list); 
     
    446446    } 
    447447#endif 
    448   RelinquishSemaphoreInfo(magick_semaphore); 
     448  UnlockSemaphoreInfo(magick_semaphore); 
    449449  return(p); 
    450450} 
     
    527527    Generate magick list. 
    528528  */ 
    529   AcquireSemaphoreInfo(&magick_semaphore); 
     529  LockSemaphoreInfo(magick_semaphore); 
    530530  ResetSplayTreeIterator(magick_list); 
    531531  p=(const MagickInfo *) GetNextValueInSplayTree(magick_list); 
     
    537537    p=(const MagickInfo *) GetNextValueInSplayTree(magick_list); 
    538538  } 
    539   RelinquishSemaphoreInfo(magick_semaphore); 
     539  UnlockSemaphoreInfo(magick_semaphore); 
    540540  qsort((void *) formats,(size_t) i,sizeof(*formats),MagickInfoCompare); 
    541541  formats[i]=(MagickInfo *) NULL; 
     
    617617  if (formats == (char **) NULL) 
    618618    return((char **) NULL); 
    619   AcquireSemaphoreInfo(&magick_semaphore); 
     619  LockSemaphoreInfo(magick_semaphore); 
    620620  ResetSplayTreeIterator(magick_list); 
    621621  p=(const MagickInfo *) GetNextValueInSplayTree(magick_list); 
     
    627627    p=(const MagickInfo *) GetNextValueInSplayTree(magick_list); 
    628628  } 
    629   RelinquishSemaphoreInfo(magick_semaphore); 
     629  UnlockSemaphoreInfo(magick_semaphore); 
    630630  qsort((void *) formats,(size_t) i,sizeof(*formats),MagickCompare); 
    631631  formats[i]=(char *) NULL; 
     
    777777    { 
    778778      AcquireSemaphoreInfo(&magick_semaphore); 
     779      LockSemaphoreInfo(magick_semaphore); 
    779780      if ((magick_list == (SplayTreeInfo *) NULL) && 
    780781          (instantiate_magick == MagickFalse)) 
     
    818819          instantiate_magick=MagickTrue; 
    819820        } 
    820       RelinquishSemaphoreInfo(magick_semaphore); 
     821      UnlockSemaphoreInfo(magick_semaphore); 
    821822    } 
    822823  return(magick_list != (SplayTreeInfo *) NULL ? MagickTrue : MagickFalse); 
     
    10301031MagickExport MagickBooleanType MagickComponentGenesis(void) 
    10311032{ 
    1032   AcquireSemaphoreInfo(&magick_semaphore); 
    1033   RelinquishSemaphoreInfo(magick_semaphore); 
     1033  assert(magick_semaphore == (SemaphoreInfo *) NULL); 
     1034  magick_semaphore=AllocateSemaphoreInfo(); 
    10341035  return(MagickTrue); 
    10351036} 
     
    10551056MagickExport void MagickComponentTerminus(void) 
    10561057{ 
    1057   AcquireSemaphoreInfo(&magick_semaphore); 
     1058  if (magick_semaphore == (SemaphoreInfo *) NULL) 
     1059    AcquireSemaphoreInfo(&magick_semaphore); 
     1060  LockSemaphoreInfo(magick_semaphore); 
    10581061  if (magick_list != (SplayTreeInfo *) NULL) 
    10591062    magick_list=DestroySplayTree(magick_list); 
    10601063  instantiate_magick=MagickFalse; 
    1061   RelinquishSemaphoreInfo(magick_semaphore); 
     1064  UnlockSemaphoreInfo(magick_semaphore); 
    10621065  DestroySemaphoreInfo(&magick_semaphore); 
    10631066} 
     
    12621265    Instantiate magick resources. 
    12631266  */ 
     1267  (void) ConfigureComponentGenesis(); 
    12641268  (void) PolicyComponentGenesis(); 
    12651269  (void) CacheComponentGenesis(); 
     
    12751279  (void) ColorComponentGenesis(); 
    12761280  (void) TypeComponentGenesis(); 
    1277   (void) ConfigureComponentGenesis(); 
    12781281  (void) MimeComponentGenesis(); 
    12791282  (void) ConstituteComponentGenesis(); 
     
    13061309  ConstituteComponentTerminus(); 
    13071310  MimeComponentTerminus(); 
    1308   ConfigureComponentTerminus(); 
    13091311  TypeComponentTerminus(); 
    13101312  ColorComponentTerminus(); 
     
    13261328  CacheComponentTerminus(); 
    13271329  PolicyComponentTerminus(); 
     1330  ConfigureComponentTerminus(); 
    13281331  RandomComponentTerminus(); 
    13291332  LocaleComponentTerminus(); 
     
    14621465  if (GetNumberOfNodesInSplayTree(magick_list) == 0) 
    14631466    return(MagickFalse); 
    1464   AcquireSemaphoreInfo(&magick_semaphore); 
     1467  LockSemaphoreInfo(magick_semaphore); 
    14651468  ResetSplayTreeIterator(magick_list); 
    14661469  p=(const MagickInfo *) GetNextValueInSplayTree(magick_list); 
     
    14721475  } 
    14731476  status=DeleteNodeByValueFromSplayTree(magick_list,p); 
    1474   RelinquishSemaphoreInfo(magick_semaphore); 
     1477  UnlockSemaphoreInfo(magick_semaphore); 
    14751478  return(status); 
    14761479} 
  • ImageMagick/trunk/magick/memory.c

    r363 r453  
    392392  if (free_segments == (DataSegmentInfo *) NULL) 
    393393    { 
    394       AcquireSemaphoreInfo(&memory_semaphore); 
     394      LockSemaphoreInfo(memory_semaphore); 
    395395      if (free_segments == (DataSegmentInfo *) NULL) 
    396396        { 
     
    412412          free_segments=(&memory_info.segment_pool[0]); 
    413413        } 
    414       RelinquishSemaphoreInfo(memory_semaphore); 
    415     } 
    416   AcquireSemaphoreInfo(&memory_semaphore); 
     414      UnlockSemaphoreInfo(memory_semaphore); 
     415    } 
     416  LockSemaphoreInfo(memory_semaphore); 
    417417  memory=AcquireBlock(size == 0 ? 1UL : size); 
    418418  if (memory == (void *) NULL) 
     
    421421        memory=AcquireBlock(size == 0 ? 1UL : size); 
    422422    } 
    423   RelinquishSemaphoreInfo(memory_semaphore); 
     423  UnlockSemaphoreInfo(memory_semaphore); 
    424424#endif 
    425425  return(memory); 
     
    547547    i; 
    548548 
    549   AcquireSemaphoreInfo(&memory_semaphore); 
    550   RelinquishSemaphoreInfo(memory_semaphore); 
     549  LockSemaphoreInfo(memory_semaphore); 
     550  UnlockSemaphoreInfo(memory_semaphore); 
    551551  for (i=0; i < (long) memory_info.number_segments; i++) 
    552552    if (memory_info.segments[i]->mapped == MagickFalse) 
     
    743743  assert((SizeOfBlock(memory) % (4*sizeof(size_t))) == 0); 
    744744  assert((*BlockHeader(NextBlock(memory)) & PreviousBlockBit) != 0); 
    745   AcquireSemaphoreInfo(&memory_semaphore); 
     745  LockSemaphoreInfo(memory_semaphore); 
    746746  if ((*BlockHeader(memory) & PreviousBlockBit) == 0) 
    747747    { 
     
    774774  *BlockHeader(NextBlock(memory))&=(~PreviousBlockBit); 
    775775  InsertFreeBlock(memory,AllocationPolicy(SizeOfBlock(memory))); 
    776   RelinquishSemaphoreInfo(memory_semaphore); 
     776  UnlockSemaphoreInfo(memory_semaphore); 
    777777#endif 
    778778  return((void *) NULL); 
     
    871871    memory=RelinquishMagickMemory(memory); 
    872872#else 
    873   AcquireSemaphoreInfo(&memory_semaphore); 
     873  LockSemaphoreInfo(memory_semaphore); 
    874874  block=ResizeBlock(memory,size == 0 ? 1UL : size); 
    875875  if (block == (void *) NULL) 
     
    877877      if (ExpandHeap(size == 0 ? 1UL : size) == MagickFalse) 
    878878        { 
    879           RelinquishSemaphoreInfo(memory_semaphore); 
     879          UnlockSemaphoreInfo(memory_semaphore); 
    880880          memory=RelinquishMagickMemory(memory); 
    881881          ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed"); 
     
    884884      assert(block != (void *) NULL); 
    885885    } 
    886   RelinquishSemaphoreInfo(memory_semaphore); 
     886  UnlockSemaphoreInfo(memory_semaphore); 
    887887  memory=RelinquishMagickMemory(memory); 
    888888#endif 
  • ImageMagick/trunk/magick/mime.c

    r446 r453  
    201201  mime_info=(const MimeInfo *) NULL; 
    202202  lsb_first=1; 
    203   AcquireSemaphoreInfo(&mime_semaphore); 
     203  LockSemaphoreInfo(mime_semaphore); 
    204204  ResetLinkedListIterator(mime_list); 
    205205  p=(const MimeInfo *) GetNextValueInLinkedList(mime_list); 
     
    325325    (void) InsertValueInLinkedList(mime_list,0, 
    326326      RemoveElementByValueFromLinkedList(mime_list,p)); 
    327   RelinquishSemaphoreInfo(mime_semaphore); 
     327  UnlockSemaphoreInfo(mime_semaphore); 
    328328  return(mime_info); 
    329329} 
     
    409409    Generate mime list. 
    410410  */ 
    411   AcquireSemaphoreInfo(&mime_semaphore); 
     411  LockSemaphoreInfo(mime_semaphore); 
    412412  ResetLinkedListIterator(mime_list); 
    413413  p=(const MimeInfo *) GetNextValueInLinkedList(mime_list); 
     
    419419    p=(const MimeInfo *) GetNextValueInLinkedList(mime_list); 
    420420  } 
    421   RelinquishSemaphoreInfo(mime_semaphore); 
     421  UnlockSemaphoreInfo(mime_semaphore); 
    422422  qsort((void *) aliases,(size_t) i,sizeof(*aliases),MimeInfoCompare); 
    423423  aliases[i]=(MimeInfo *) NULL; 
     
    501501  if (aliases == (char **) NULL) 
    502502    return((char **) NULL); 
    503   AcquireSemaphoreInfo(&mime_semaphore); 
     503  LockSemaphoreInfo(mime_semaphore); 
    504504  ResetLinkedListIterator(mime_list); 
    505505  p=(const MimeInfo *) GetNextValueInLinkedList(mime_list); 
     
    511511    p=(const MimeInfo *) GetNextValueInLinkedList(mime_list); 
    512512  } 
    513   RelinquishSemaphoreInfo(mime_semaphore); 
     513  UnlockSemaphoreInfo(mime_semaphore); 
    514514  qsort((void *) aliases,(size_t) i,sizeof(*aliases),MimeCompare); 
    515515  aliases[i]=(char *) NULL; 
     
    606606    { 
    607607      AcquireSemaphoreInfo(&mime_semaphore); 
     608      LockSemaphoreInfo(mime_semaphore); 
    608609      if ((mime_list == (LinkedListInfo *) NULL) && 
    609610          (instantiate_mime == MagickFalse)) 
     
    612613          instantiate_mime=MagickTrue; 
    613614        } 
    614       RelinquishSemaphoreInfo(mime_semaphore); 
     615      UnlockSemaphoreInfo(mime_semaphore); 
    615616    } 
    616617  return(mime_list != (LinkedListInfo *) NULL ? MagickTrue : MagickFalse); 
     
    10511052MagickExport MagickBooleanType MimeComponentGenesis(void) 
    10521053{ 
    1053   AcquireSemaphoreInfo(&mime_semaphore); 
    1054   RelinquishSemaphoreInfo(mime_semaphore); 
     1054  assert(mime_semaphore == (SemaphoreInfo *) NULL); 
     1055  mime_semaphore=AllocateSemaphoreInfo(); 
    10551056  return(MagickTrue); 
    10561057} 
     
    10971098MagickExport void MimeComponentTerminus(void) 
    10981099{ 
    1099   AcquireSemaphoreInfo(&mime_semaphore); 
     1100  if (mime_semaphore == (SemaphoreInfo *) NULL) 
     1101    AcquireSemaphoreInfo(&mime_semaphore); 
     1102  LockSemaphoreInfo(mime_semaphore); 
    11001103  if (mime_list != (LinkedListInfo *) NULL) 
    11011104    mime_list=DestroyLinkedList(mime_list,DestroyMimeElement); 
    11021105  instantiate_mime=MagickFalse; 
    1103   RelinquishSemaphoreInfo(mime_semaphore); 
     1106  UnlockSemaphoreInfo(mime_semaphore); 
    11041107  DestroySemaphoreInfo(&mime_semaphore); 
    11051108} 
  • ImageMagick/trunk/magick/module.c

    r446 r453  
    176176    Destroy magick modules. 
    177177  */ 
    178   AcquireSemaphoreInfo(&module_semaphore); 
     178  LockSemaphoreInfo(module_semaphore); 
    179179#if defined(MAGICKCORE_MODULES_SUPPORT) 
    180180  if (module_list != (SplayTreeInfo *) NULL) 
     
    184184#endif 
    185185  instantiate_module=MagickFalse; 
    186   RelinquishSemaphoreInfo(module_semaphore); 
     186  UnlockSemaphoreInfo(module_semaphore); 
    187187} 
    188188 
     
    233233        (void) OpenModules(exception); 
    234234#endif 
    235       AcquireSemaphoreInfo(&module_semaphore); 
     235      LockSemaphoreInfo(module_semaphore); 
    236236      ResetSplayTreeIterator(module_list); 
    237237      p=(ModuleInfo *) GetNextValueInSplayTree(module_list); 
    238       RelinquishSemaphoreInfo(module_semaphore); 
     238      UnlockSemaphoreInfo(module_semaphore); 
    239239      return(p); 
    240240    } 
     
    320320    Generate module list. 
    321321  */ 
    322   AcquireSemaphoreInfo(&module_semaphore); 
     322  LockSemaphoreInfo(module_semaphore); 
    323323  ResetSplayTreeIterator(module_list); 
    324324  p=(const ModuleInfo *) GetNextValueInSplayTree(module_list); 
     
    330330    p=(const ModuleInfo *) GetNextValueInSplayTree(module_list); 
    331331  } 
    332   RelinquishSemaphoreInfo(module_semaphore); 
     332  UnlockSemaphoreInfo(module_semaphore); 
    333333  qsort((void *) modules,(size_t) i,sizeof(*modules),ModuleInfoCompare); 
    334334  modules[i]=(ModuleInfo *) NULL; 
     
    849849    { 
    850850      AcquireSemaphoreInfo(&module_semaphore); 
     851      LockSemaphoreInfo(module_semaphore); 
    851852      if ((module_list == (SplayTreeInfo *) NULL) && 
    852853          (instantiate_module == MagickFalse)) 
     
    874875          instantiate_module=MagickTrue; 
    875876        } 
    876       RelinquishSemaphoreInfo(module_semaphore); 
     877      UnlockSemaphoreInfo(module_semaphore); 
    877878    } 
    878879  return(module_list != (SplayTreeInfo *) NULL ? MagickTrue : MagickFalse); 
     
    11061107    *exception; 
    11071108 
     1109  assert(module_semaphore == (SemaphoreInfo *) NULL); 
     1110  module_semaphore=AllocateSemaphoreInfo(); 
    11081111  exception=AcquireExceptionInfo(); 
    11091112  InitializeModuleList(exception); 
     
    11321135MagickExport void ModuleComponentTerminus(void) 
    11331136{ 
     1137  if (module_semaphore == (SemaphoreInfo *) NULL) 
     1138    AcquireSemaphoreInfo(&module_semaphore); 
    11341139  DestroyModuleList(); 
    11351140  DestroySemaphoreInfo(&module_semaphore); 
  • ImageMagick/trunk/magick/policy.c

    r446 r453  
    193193    Search for policy tag. 
    194194  */ 
    195   AcquireSemaphoreInfo(&policy_semaphore); 
     195  LockSemaphoreInfo(policy_semaphore); 
    196196  ResetLinkedListIterator(policy_list); 
    197197  p=(PolicyInfo *) GetNextValueInLinkedList(policy_list); 
     
    208208    (void) InsertValueInLinkedList(policy_list,0, 
    209209      RemoveElementByValueFromLinkedList(policy_list,p)); 
    210   RelinquishSemaphoreInfo(policy_semaphore); 
     210  UnlockSemaphoreInfo(policy_semaphore); 
    211211  return(p); 
    212212} 
     
    268268    Generate policy list. 
    269269  */ 
    270   AcquireSemaphoreInfo(&policy_semaphore); 
     270  LockSemaphoreInfo(policy_semaphore); 
    271271  ResetLinkedListIterator(policy_list); 
    272272  p=(const PolicyInfo *) GetNextValueInLinkedList(policy_list); 
     
    278278    p=(const PolicyInfo *) GetNextValueInLinkedList(policy_list); 
    279279  } 
    280   RelinquishSemaphoreInfo(policy_semaphore); 
     280  UnlockSemaphoreInfo(policy_semaphore); 
    281281  policies[i]=(PolicyInfo *) NULL; 
    282282  *number_policies=(unsigned long) i; 
     
    340340    Generate policy list. 
    341341  */ 
    342   AcquireSemaphoreInfo(&policy_semaphore); 
     342  LockSemaphoreInfo(policy_semaphore); 
    343343  ResetLinkedListIterator(policy_list); 
    344344  p=(const PolicyInfo *) GetNextValueInLinkedList(policy_list); 
     
    350350    p=(const PolicyInfo *) GetNextValueInLinkedList(policy_list); 
    351351  } 
    352   RelinquishSemaphoreInfo(policy_semaphore); 
     352  UnlockSemaphoreInfo(policy_semaphore); 
    353353  policies[i]=(char *) NULL; 
    354354  *number_policies=(unsigned long) i; 
     
    430430    { 
    431431      AcquireSemaphoreInfo(&policy_semaphore); 
     432      LockSemaphoreInfo(policy_semaphore); 
    432433      if ((policy_list == (LinkedListInfo *) NULL) && 
    433434          (instantiate_policy == MagickFalse)) 
     
    436437          instantiate_policy=MagickTrue; 
    437438        } 
    438       RelinquishSemaphoreInfo(policy_semaphore); 
     439      UnlockSemaphoreInfo(policy_semaphore); 
    439440    } 
    440441  return(policy_list != (LinkedListInfo *) NULL ? MagickTrue : MagickFalse); 
     
    494495    return(MagickTrue); 
    495496  authorized=MagickTrue; 
    496   AcquireSemaphoreInfo(&policy_semaphore); 
     497  LockSemaphoreInfo(policy_semaphore); 
    497498  ResetLinkedListIterator(policy_list); 
    498499  p=(PolicyInfo *) GetNextValueInLinkedList(policy_list); 
     
    514515    p=(PolicyInfo *) GetNextValueInLinkedList(policy_list); 
    515516  } 
    516   RelinquishSemaphoreInfo(policy_semaphore); 
     517  UnlockSemaphoreInfo(policy_semaphore); 
    517518  return(authorized); 
    518519} 
     
    965966MagickExport MagickBooleanType PolicyComponentGenesis(void) 
    966967{ 
    967   AcquireSemaphoreInfo(&policy_semaphore); 
    968   RelinquishSemaphoreInfo(policy_semaphore); 
     968  assert(policy_semaphore == (SemaphoreInfo *) NULL); 
     969  policy_semaphore=AllocateSemaphoreInfo(); 
    969970  return(MagickTrue); 
    970971} 
     
    10121013MagickExport void PolicyComponentTerminus(void) 
    10131014{ 
    1014   AcquireSemaphoreInfo(&policy_semaphore); 
     1015  if (policy_semaphore == (SemaphoreInfo *) NULL) 
     1016    AcquireSemaphoreInfo(&policy_semaphore); 
     1017  LockSemaphoreInfo(policy_semaphore); 
    10151018  if (policy_list != (LinkedListInfo *) NULL) 
    10161019    policy_list=DestroyLinkedList(policy_list,DestroyPolicyElement); 
    10171020  instantiate_policy=MagickFalse; 
    1018   RelinquishSemaphoreInfo(policy_semaphore); 
     1021  UnlockSemaphoreInfo(policy_semaphore); 
    10191022  DestroySemaphoreInfo(&policy_semaphore); 
    10201023} 
  • ImageMagick/trunk/magick/random.c

    r446 r453  
    690690%                                                                             % 
    691691%                                                                             % 
    692 +   R a n d o m C o m p o n e n t G e n e s i s                                % 
     692+   R a n d o m C o m p o n e n t G e n e s i s                               % 
    693693%                                                                             % 
    694694%                                                                             % 
     
    705705MagickExport MagickBooleanType RandomComponentGenesis(void) 
    706706{ 
    707   AcquireSemaphoreInfo(&random_semaphore); 
    708   RelinquishSemaphoreInfo(random_semaphore); 
     707  assert(random_semaphore == (SemaphoreInfo *) NULL); 
     708  random_semaphore=AllocateSemaphoreInfo(); 
    709709  return(MagickTrue); 
    710710} 
     
    730730MagickExport void RandomComponentTerminus(void) 
    731731{ 
    732   AcquireSemaphoreInfo(&random_semaphore); 
    733   (void) UnlockSemaphoreInfo(random_semaphore); 
     732  if (random_semaphore == (SemaphoreInfo *) NULL) 
     733    AcquireSemaphoreInfo(&random_semaphore); 
    734734  DestroySemaphoreInfo(&random_semaphore); 
    735735} 
  • ImageMagick/trunk/magick/registry.c

    r446 r453  
    300300MagickExport MagickBooleanType RegistryComponentGenesis(void) 
    301301{ 
    302   AcquireSemaphoreInfo(&registry_semaphore); 
    303   RelinquishSemaphoreInfo(registry_semaphore); 
     302  assert(registry_semaphore == (SemaphoreInfo *) NULL); 
     303  registry_semaphore=AllocateSemaphoreInfo(); 
    304304  return(MagickTrue); 
    305305} 
     
    325325MagickExport void RegistryComponentTerminus(void) 
    326326{ 
    327   AcquireSemaphoreInfo(&registry_semaphore); 
     327  if (registry_semaphore == (SemaphoreInfo *) NULL) 
     328    AcquireSemaphoreInfo(&registry_semaphore); 
     329  LockSemaphoreInfo(registry_semaphore); 
    328330  if (IsEventLogging() != MagickFalse) 
    329331    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"..."); 
     
    331333    registry=DestroySplayTree(registry); 
    332334  instantiate_registry=MagickFalse; 
    333   RelinquishSemaphoreInfo(registry_semaphore); 
     335  UnlockSemaphoreInfo(registry_semaphore); 
    334336  DestroySemaphoreInfo(&registry_semaphore); 
    335337} 
     
    525527    { 
    526528      AcquireSemaphoreInfo(&registry_semaphore); 
     529      LockSemaphoreInfo(registry_semaphore); 
    527530      if ((registry == (SplayTreeInfo *) NULL) && 
    528531          (instantiate_registry == MagickFalse)) 
     
    532535          instantiate_registry=MagickTrue; 
    533536        } 
    534       RelinquishSemaphoreInfo(registry_semaphore); 
     537      UnlockSemaphoreInfo(registry_semaphore); 
    535538    } 
    536539  status=AddValueToSplayTree(registry,ConstantString(key),registry_info); 
  • ImageMagick/trunk/magick/resource.c

    r446 r453  
    160160  status=MagickFalse; 
    161161  (void) FormatMagickSize(size,resource_request); 
    162   AcquireSemaphoreInfo(&resource_semaphore); 
     162  if (resource_semaphore == (SemaphoreInfo *) NULL) 
     163    AcquireSemaphoreInfo(&resource_semaphore); 
     164  LockSemaphoreInfo(resource_semaphore); 
    163165  switch (type) 
    164166  { 
     
    254256      break; 
    255257  } 
    256   RelinquishSemaphoreInfo(resource_semaphore); 
     258  UnlockSemaphoreInfo(resource_semaphore); 
    257259  (void) LogMagickEvent(ResourceEvent,GetMagickModule(),"%s: %s/%s/%s", 
    258260    MagickOptionToMnemonic(MagickResourceOptions,(long) type),resource_request, 
     
    468470  if (file == -1) 
    469471    return(file); 
    470   AcquireSemaphoreInfo(&resource_semaphore); 
     472  if (resource_semaphore == (SemaphoreInfo *) NULL) 
     473    AcquireSemaphoreInfo(&resource_semaphore); 
     474  LockSemaphoreInfo(resource_semaphore); 
    471475  if (temporary_resources == (SplayTreeInfo *) NULL) 
    472476    temporary_resources=NewSplayTree(CompareSplayTreeString, 
    473477      RelinquishMagickMemory,DestroyTemporaryResources); 
    474   RelinquishSemaphoreInfo(resource_semaphore); 
     478  UnlockSemaphoreInfo(resource_semaphore); 
    475479  resource=ConstantString(path); 
    476480  (void) AddValueToSplayTree(temporary_resources,resource,resource); 
     
    506510 
    507511  resource=0; 
    508   AcquireSemaphoreInfo(&resource_semaphore); 
     512  LockSemaphoreInfo(resource_semaphore); 
    509513  switch (type) 
    510514  { 
     
    547551      break; 
    548552  } 
    549   RelinquishSemaphoreInfo(resource_semaphore); 
     553  UnlockSemaphoreInfo(resource_semaphore); 
    550554  return(resource); 
    551555} 
     
    579583 
    580584  resource=0; 
    581   AcquireSemaphoreInfo(&resource_semaphore); 
     585  if (resource_semaphore == (SemaphoreInfo *) NULL) 
     586    AcquireSemaphoreInfo(&resource_semaphore); 
     587  LockSemaphoreInfo(resource_semaphore); 
    582588  switch (type) 
    583589  { 
     
    620626      break; 
    621627  } 
    622   RelinquishSemaphoreInfo(resource_semaphore); 
     628  UnlockSemaphoreInfo(resource_semaphore); 
    623629  return(resource); 
    624630} 
     
    661667  if (file == (const FILE *) NULL) 
    662668    file=stdout; 
    663   AcquireSemaphoreInfo(&resource_semaphore); 
     669  if (resource_semaphore == (SemaphoreInfo *) NULL) 
     670    AcquireSemaphoreInfo(&resource_semaphore); 
     671  LockSemaphoreInfo(resource_semaphore); 
    664672  (void) FormatMagickSize(resource_info.area_limit,area_limit); 
    665673  (void) FormatMagickSize(resource_info.memory_limit,memory_limit); 
     
    678686    disk_limit,(unsigned long) resource_info.thread_limit,time_limit); 
    679687  (void) fflush(file); 
    680   RelinquishSemaphoreInfo(resource_semaphore); 
     688  UnlockSemaphoreInfo(resource_semaphore); 
    681689  return(MagickTrue); 
    682690} 
     
    716724 
    717725  (void) FormatMagickSize(size,resource_request); 
    718   AcquireSemaphoreInfo(&resource_semaphore); 
     726  if (resource_semaphore == (SemaphoreInfo *) NULL) 
     727    AcquireSemaphoreInfo(&resource_semaphore); 
     728  LockSemaphoreInfo(resource_semaphore); 
    719729  switch (type) 
    720730  { 
     
    781791      break; 
    782792  } 
    783   RelinquishSemaphoreInfo(resource_semaphore); 
     793  UnlockSemaphoreInfo(resource_semaphore); 
    784794  (void) LogMagickEvent(ResourceEvent,GetMagickModule(),"%s: %s/%s/%s", 
    785795    MagickOptionToMnemonic(MagickResourceOptions,(long) type),resource_request, 
     
    893903    Set Magick resource limits. 
    894904  */ 
    895   AcquireSemaphoreInfo(&resource_semaphore); 
    896   RelinquishSemaphoreInfo(resource_semaphore); 
     905  assert(resource_semaphore == (SemaphoreInfo *) NULL); 
     906  resource_semaphore=AllocateSemaphoreInfo(); 
    897907  pagesize=GetMagickPageSize(); 
    898908  pages=(-1); 
     
    10141024MagickExport void ResourceComponentTerminus(void) 
    10151025{ 
    1016   AcquireSemaphoreInfo(&resource_semaphore); 
     1026  if (resource_semaphore == (SemaphoreInfo *) NULL) 
     1027    AcquireSemaphoreInfo(&resource_semaphore); 
     1028  LockSemaphoreInfo(resource_semaphore); 
    10171029  if (temporary_resources != (SplayTreeInfo *) NULL) 
    10181030    temporary_resources=DestroySplayTree(temporary_resources); 
    10191031  if (random_info != (RandomInfo *) NULL) 
    10201032    random_info=DestroyRandomInfo(random_info); 
    1021   RelinquishSemaphoreInfo(resource_semaphore); 
     1033  UnlockSemaphoreInfo(resource_semaphore); 
    10221034  DestroySemaphoreInfo(&resource_semaphore); 
    10231035} 
     
    10511063  const MagickSizeType limit) 
    10521064{ 
    1053   AcquireSemaphoreInfo(&resource_semaphore); 
     1065  if (resource_semaphore == (SemaphoreInfo *) NULL) 
     1066    AcquireSemaphoreInfo(&resource_semaphore); 
     1067  LockSemaphoreInfo(resource_semaphore); 
    10541068  switch (type) 
    10551069  { 
     
    10931107      break; 
    10941108  } 
    1095   RelinquishSemaphoreInfo(resource_semaphore); 
     1109  UnlockSemaphoreInfo(resource_semaphore); 
    10961110  return(MagickTrue); 
    10971111} 
  • ImageMagick/trunk/magick/semaphore.c

    r446 r453  
    119119    *semaphore_info=AllocateSemaphoreInfo(); 
    120120  UnlockMagickMutex(); 
    121   (void) LockSemaphoreInfo(*semaphore_info); 
    122121} 
    123122 
  • ImageMagick/trunk/magick/type.c

    r446 r453  
    271271  if (type_list == (SplayTreeInfo *) NULL) 
    272272    return((TypeInfo *) NULL); 
    273   AcquireSemaphoreInfo(&type_semaphore); 
     273  LockSemaphoreInfo(type_semaphore); 
    274274  ResetSplayTreeIterator(type_list); 
    275275  type_info=(const TypeInfo *) NULL; 
     
    316316    break; 
    317317  } 
    318   RelinquishSemaphoreInfo(type_semaphore); 
     318  UnlockSemaphoreInfo(type_semaphore); 
    319319  if (type_info != (const TypeInfo *) NULL) 
    320320    return(type_info); 
     
    323323  */ 
    324324  max_score=0; 
    325   AcquireSemaphoreInfo(&type_semaphore); 
     325  LockSemaphoreInfo(type_semaphore); 
    326326  ResetSplayTreeIterator(type_list); 
    327327  p=(const TypeInfo *) GetNextValueInSplayTree(type_list); 
     
    375375    p=(const TypeInfo *) GetNextValueInSplayTree(type_list); 
    376376  } 
    377   RelinquishSemaphoreInfo(type_semaphore); 
     377  UnlockSemaphoreInfo(type_semaphore); 
    378378  if (type_info != (const TypeInfo *) NULL) 
    379379    return(type_info); 
     
    486486    Generate type list. 
    487487  */ 
    488   AcquireSemaphoreInfo(&type_semaphore); 
     488  LockSemaphoreInfo(type_semaphore); 
    489489  ResetSplayTreeIterator(type_list); 
    490490  p=(const TypeInfo *) GetNextValueInSplayTree(type_list); 
     
    496496    p=(const TypeInfo *) GetNextValueInSplayTree(type_list); 
    497497  } 
    498   RelinquishSemaphoreInfo(type_semaphore); 
     498  UnlockSemaphoreInfo(type_semaphore); 
    499499  qsort((void *) fonts,(size_t) i,sizeof(*fonts),TypeInfoCompare); 
    500500  fonts[i]=(TypeInfo *) NULL; 
     
    579579    Generate type list. 
    580580  */ 
    581   AcquireSemaphoreInfo(&type_semaphore); 
     581  LockSemaphoreInfo(type_semaphore); 
    582582  ResetSplayTreeIterator(type_list); 
    583583  p=(const TypeInfo *) GetNextValueInSplayTree(type_list); 
     
    589589    p=(const TypeInfo *) GetNextValueInSplayTree(type_list); 
    590590  } 
    591   RelinquishSemaphoreInfo(type_semaphore); 
     591  UnlockSemaphoreInfo(type_semaphore); 
    592592  qsort((void *) fonts,(size_t) i,sizeof(*fonts),TypeCompare); 
    593593  fonts[i]=(char *) NULL; 
     
    773773    { 
    774774      AcquireSemaphoreInfo(&type_semaphore); 
     775      LockSemaphoreInfo(type_semaphore); 
    775776      if ((type_list == (SplayTreeInfo *) NULL) && 
    776777          (instantiate_type == MagickFalse)) 
     
    785786          instantiate_type=MagickTrue; 
    786787        } 
    787       RelinquishSemaphoreInfo(type_semaphore); 
     788      UnlockSemaphoreInfo(type_semaphore); 
    788789    } 
    789790  return(type_list != (SplayTreeInfo *) NULL ? MagickTrue : MagickFalse); 
     
    13431344MagickExport MagickBooleanType TypeComponentGenesis(void) 
    13441345{ 
    1345   AcquireSemaphoreInfo(&type_semaphore); 
    1346   RelinquishSemaphoreInfo(type_semaphore); 
     1346  assert(type_semaphore == (SemaphoreInfo *) NULL); 
     1347  type_semaphore=AllocateSemaphoreInfo(); 
    13471348  return(MagickTrue); 
    13481349} 
     
    13681369MagickExport void TypeComponentTerminus(void) 
    13691370{ 
    1370   AcquireSemaphoreInfo(&type_semaphore); 
     1371  if (type_semaphore == (SemaphoreInfo *) NULL) 
     1372    AcquireSemaphoreInfo(&type_semaphore); 
     1373  LockSemaphoreInfo(type_semaphore); 
    13711374  if (type_list != (SplayTreeInfo *) NULL) 
    13721375    type_list=DestroySplayTree(type_list); 
    13731376  instantiate_type=MagickFalse; 
    1374   RelinquishSemaphoreInfo(type_semaphore); 
     1377  UnlockSemaphoreInfo(type_semaphore); 
    13751378  DestroySemaphoreInfo(&type_semaphore); 
    13761379} 
  • ImageMagick/trunk/wand/wand.c

    r1 r453  
    7777    id = 0; 
    7878 
    79   AcquireSemaphoreInfo(&wand_semaphore); 
     79  if (wand_semaphore == (SemaphoreInfo *) NULL) 
     80    AcquireSemaphoreInfo(&wand_semaphore); 
     81  LockSemaphoreInfo(wand_semaphore); 
    8082  if ((wand_ids == (SplayTreeInfo *) NULL) && (instantiate_wand == MagickFalse)) 
    8183    { 
     
    8688  id++; 
    8789  (void) AddValueToSplayTree(wand_ids,(const void *) id,(const void *) id); 
    88   RelinquishSemaphoreInfo(wand_semaphore); 
     90  UnlockSemaphoreInfo(wand_semaphore); 
    8991  return(id); 
    9092} 
     
    112114WandExport void DestroyWandIds(void) 
    113115{ 
    114   AcquireSemaphoreInfo(&wand_semaphore); 
     116  LockSemaphoreInfo(wand_semaphore); 
    115117  if (wand_ids != (SplayTreeInfo *) NULL) 
    116118    wand_ids=DestroySplayTree(wand_ids); 
    117119  instantiate_wand=MagickFalse; 
    118   RelinquishSemaphoreInfo(wand_semaphore); 
     120  UnlockSemaphoreInfo(wand_semaphore); 
    119121  DestroySemaphoreInfo(&wand_semaphore); 
    120122} 
     
    144146WandExport void RelinquishWandId(const unsigned long id) 
    145147{ 
    146   AcquireSemaphoreInfo(&wand_semaphore); 
     148  LockSemaphoreInfo(wand_semaphore); 
    147149  if (wand_ids != (SplayTreeInfo *) NULL) 
    148150    (void) DeleteNodeByValueFromSplayTree(wand_ids,(const void *) id); 
    149   RelinquishSemaphoreInfo(wand_semaphore); 
     151  UnlockSemaphoreInfo(wand_semaphore); 
    150152}