From f14e6df788274a0491a782238de68bc3238245f4 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Tue, 6 Jan 2009 17:07:56 +0000 Subject: [PATCH] Don't do necessary stuff inside assert(). --- src/libCom/osi/epicsEvent.h | 5 ++++- src/libCom/osi/epicsMutex.h | 5 ++++- src/libCom/osi/os/vxWorks/osdThread.c | 7 +++++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/libCom/osi/epicsEvent.h b/src/libCom/osi/epicsEvent.h index 635e7a4f6..1bc98a0fd 100644 --- a/src/libCom/osi/epicsEvent.h +++ b/src/libCom/osi/epicsEvent.h @@ -54,7 +54,10 @@ epicsShareFunc void epicsShareAPI epicsEventDestroy(epicsEventId id); epicsShareFunc void epicsShareAPI epicsEventSignal(epicsEventId id); epicsShareFunc epicsEventWaitStatus epicsShareAPI epicsEventWait( epicsEventId id); -#define epicsEventMustWait(ID) assert((epicsEventWait ((ID))==epicsEventWaitOK)) +#define epicsEventMustWait(ID) { \ + epicsEventWaitStatus status = epicsEventWait(ID); \ + assert(status == epicsEventWaitOK); \ +} epicsShareFunc epicsEventWaitStatus epicsShareAPI epicsEventWaitWithTimeout( epicsEventId id, double timeOut); epicsShareFunc epicsEventWaitStatus epicsShareAPI epicsEventTryWait( diff --git a/src/libCom/osi/epicsMutex.h b/src/libCom/osi/epicsMutex.h index 4b32668fb..d016cf3d4 100644 --- a/src/libCom/osi/epicsMutex.h +++ b/src/libCom/osi/epicsMutex.h @@ -72,7 +72,10 @@ epicsShareFunc void epicsShareAPI epicsMutexDestroy(epicsMutexId id); epicsShareFunc void epicsShareAPI epicsMutexUnlock(epicsMutexId id); epicsShareFunc epicsMutexLockStatus epicsShareAPI epicsMutexLock( epicsMutexId id); -#define epicsMutexMustLock(ID) assert((epicsMutexLock((ID))==epicsMutexLockOK)) +#define epicsMutexMustLock(ID) { \ + epicsMutexLockStatus status = epicsMutexLock(ID); \ + assert(status == epicsMutexLockOK); \ +} epicsShareFunc epicsMutexLockStatus epicsShareAPI epicsMutexTryLock( epicsMutexId id); epicsShareFunc void epicsShareAPI epicsMutexShow( diff --git a/src/libCom/osi/os/vxWorks/osdThread.c b/src/libCom/osi/os/vxWorks/osdThread.c index c4cea9563..4bda3cb52 100644 --- a/src/libCom/osi/os/vxWorks/osdThread.c +++ b/src/libCom/osi/os/vxWorks/osdThread.c @@ -112,13 +112,16 @@ unsigned int epicsThreadGetStackSize (epicsThreadStackSizeClass stackSizeClass) void epicsThreadOnceOsd(epicsThreadOnceId *id, void (*func)(void *), void *arg) { + int result; epicsThreadInit(); - assert(semTake(epicsThreadOnceMutex,WAIT_FOREVER)==OK); + result = semTake(epicsThreadOnceMutex, WAIT_FOREVER); + assert(result == OK); if (*id == 0) { /* 0 => first call */ *id = -1; /* -1 => func() active */ semGive(epicsThreadOnceMutex); func(arg); - assert(semTake(epicsThreadOnceMutex,WAIT_FOREVER)==OK); + result = semTake(epicsThreadOnceMutex, WAIT_FOREVER); + assert(result == OK); *id = +1; /* +1 => func() done */ } else assert(*id > 0 /* func() called epicsThreadOnce() with same id */);