31 spin = calloc(1,
sizeof(*spin));
50 cantProceed(
"epicsSpinMustCreate: epicsSpinCreate failed.");
64 errlogPrintf(
"epicsSpinLock(%p): epicsMutexLock returned %s\n", spin,
66 "epicsMutexLockTimeout" :
"epicsMutexLockError");
77 errlogPrintf(
"epicsSpinTryLock(%p): epicsMutexTryLock returned epicsMutexLockError\n", spin);
void epicsStdCall epicsMutexDestroy(epicsMutexId pmutexNode)
Destroy an epicsMutex semaphore.
void epicsStdCall epicsMutexUnlock(epicsMutexId pmutexNode)
Release the semaphore.
void epicsSpinLock(epicsSpinId spin)
APIs for the epicsMutex mutual exclusion semaphore.
int errlogPrintf(const char *pFormat,...)
int epicsSpinTryLock(epicsSpinId spin)
void epicsSpinDestroy(epicsSpinId spin)
void epicsSpinUnlock(epicsSpinId spin)
epicsMutexLockStatus epicsStdCall epicsMutexLock(epicsMutexId pmutexNode)
Claim the semaphore, waiting until it's free if currently owned owned by a different thread...
epicsMutexLockStatus epicsStdCall epicsMutexTryLock(epicsMutexId pmutexNode)
Similar to epicsMutexLock() except that the call returns immediately, with the return status indicati...
#define epicsMutexCreate()
Create an epicsMutex semaphore for use from C code.
LIBCOM_API void cantProceed(const char *msg,...)
Routines for code that can't continue or return after an error.
epicsSpinId epicsSpinMustCreate(void)
epicsSpinId epicsSpinCreate(void)
struct epicsSpin epicsSpin