# semaphore.c File Reference

`#include "magick/studio.h"`
`#include "magick/exception.h"`
`#include "magick/exception-private.h"`
`#include "magick/memory_.h"`
`#include "magick/semaphore.h"`
`#include "magick/string_.h"`
`#include <pthread.h>`

## Data Structures

struct | SemaphoreInfo

## Functions

MagickExport void | AcquireSemaphoreInfo (SemaphoreInfo **semaphore_info)
MagickExport SemaphoreInfo * | AllocateSemaphoreInfo (void)
MagickExport void | DestroySemaphore (void)
MagickExport SemaphoreInfo * | DestroySemaphoreInfo (SemaphoreInfo *semaphore_info)
MagickExport void | InitializeSemaphore (void)
MagickExport MagickBooleanType | LockSemaphoreInfo (SemaphoreInfo *semaphore_info)
MagickExport void | RelinquishSemaphoreInfo (SemaphoreInfo *semaphore_info)
MagickExport MagickBooleanType | UnlockSemaphoreInfo (SemaphoreInfo *semaphore_info)

## Variables

static pthread_mutex_t | semaphore_mutex = PTHREAD_MUTEX_INITIALIZER

## Function Documentation

MagickExport void AcquireSemaphoreInfo | ( | SemaphoreInfo ** | semaphore_info | ) |

MagickExport SemaphoreInfo* AllocateSemaphoreInfo | ( | void |  | ) |

MagickExport void DestroySemaphore | ( | void |  | ) |

MagickExport SemaphoreInfo* DestroySemaphoreInfo | ( | SemaphoreInfo * | semaphore_info | ) |

MagickExport void InitializeSemaphore | ( | void |  | ) |

MagickExport MagickBooleanType LockSemaphoreInfo | ( | SemaphoreInfo * | semaphore_info | ) |

MagickExport void RelinquishSemaphoreInfo | ( | SemaphoreInfo * | semaphore_info | ) |

MagickExport MagickBooleanType UnlockSemaphoreInfo | ( | SemaphoreInfo * | semaphore_info | ) |

## Variable Documentation

pthread_mutex_t semaphore_mutex = PTHREAD_MUTEX_INITIALIZER`[static]`