From 072b449bb1ad8258bea1255258699796a57ecf88 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Tue, 8 Feb 2011 14:17:47 -0600 Subject: [PATCH] libCom: Fixed epicsEvent issues on Win32 and cygwin. * Removed all epicsShareAPI decorations * Return value from Win32 epicsEventTrigger() inverted * Return OK from posix epicsEventTrigger() omitted. --- documentation/RELEASE_NOTES.html | 1 + src/libCom/osi/epicsEvent.h | 20 ++++++++++---------- src/libCom/osi/os/WIN32/osdEvent.c | 18 +++++++++--------- src/libCom/osi/os/posix/osdEvent.c | 1 + 4 files changed, 21 insertions(+), 19 deletions(-) diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html index 1dfe46a3c..1832c8485 100644 --- a/documentation/RELEASE_NOTES.html +++ b/documentation/RELEASE_NOTES.html @@ -35,6 +35,7 @@ Reworked the epicsEvent C & C++ APIs libCom/osi/epicsEvent.cpp source file, and call cantProceed() instead of mis-using assert()
  • Implemented epicsEventShow() on Posix
  • +
  • Win32: Removed all epicsShareAPI decorations
  • diff --git a/src/libCom/osi/epicsEvent.h b/src/libCom/osi/epicsEvent.h index 41816858a..e77d9a5ce 100644 --- a/src/libCom/osi/epicsEvent.h +++ b/src/libCom/osi/epicsEvent.h @@ -52,23 +52,23 @@ private: extern "C" { #endif /*__cplusplus */ -epicsShareFunc epicsEventId epicsShareAPI epicsEventCreate( +epicsShareFunc epicsEventId epicsEventCreate( epicsEventInitialState initialState); -epicsShareFunc epicsEventId epicsShareAPI epicsEventMustCreate ( +epicsShareFunc epicsEventId epicsEventMustCreate ( epicsEventInitialState initialState); -epicsShareFunc void epicsShareAPI epicsEventDestroy(epicsEventId id); -epicsShareFunc epicsEventStatus epicsShareAPI epicsEventTrigger( +epicsShareFunc void epicsEventDestroy(epicsEventId id); +epicsShareFunc epicsEventStatus epicsEventTrigger( epicsEventId id); -epicsShareFunc void epicsShareAPI epicsEventMustTrigger(epicsEventId id); +epicsShareFunc void epicsEventMustTrigger(epicsEventId id); #define epicsEventSignal(ID) epicsEventMustTrigger(ID) -epicsShareFunc epicsEventStatus epicsShareAPI epicsEventWait( +epicsShareFunc epicsEventStatus epicsEventWait( epicsEventId id); -epicsShareFunc void epicsShareAPI epicsEventMustWait(epicsEventId id); -epicsShareFunc epicsEventStatus epicsShareAPI epicsEventWaitWithTimeout( +epicsShareFunc void epicsEventMustWait(epicsEventId id); +epicsShareFunc epicsEventStatus epicsEventWaitWithTimeout( epicsEventId id, double timeOut); -epicsShareFunc epicsEventStatus epicsShareAPI epicsEventTryWait( +epicsShareFunc epicsEventStatus epicsEventTryWait( epicsEventId id); -epicsShareFunc void epicsShareAPI epicsEventShow( +epicsShareFunc void epicsEventShow( epicsEventId id, unsigned int level); #ifdef __cplusplus diff --git a/src/libCom/osi/os/WIN32/osdEvent.c b/src/libCom/osi/os/WIN32/osdEvent.c index d017104ca..a57d43608 100644 --- a/src/libCom/osi/os/WIN32/osdEvent.c +++ b/src/libCom/osi/os/WIN32/osdEvent.c @@ -34,7 +34,7 @@ typedef struct epicsEventOSD { /* * epicsEventCreate () */ -epicsShareFunc epicsEventId epicsShareAPI epicsEventCreate ( +epicsShareFunc epicsEventId epicsEventCreate ( epicsEventInitialState initialState ) { epicsEventOSD *pSem; @@ -54,26 +54,26 @@ epicsShareFunc epicsEventId epicsShareAPI epicsEventCreate ( /* * epicsEventDestroy () */ -epicsShareFunc void epicsShareAPI epicsEventDestroy ( epicsEventId pSem ) +epicsShareFunc void epicsEventDestroy ( epicsEventId pSem ) { CloseHandle ( pSem->handle ); free ( pSem ); } /* - * epicsEventSignal () + * epicsEventTrigger () */ -epicsShareFunc epicsEventStatus epicsShareAPI epicsEventTrigger ( epicsEventId pSem ) +epicsShareFunc epicsEventStatus epicsEventTrigger ( epicsEventId pSem ) { BOOL status; status = SetEvent ( pSem->handle ); - return status ? epicsEventError : epicsEventOK; + return status ? epicsEventOK : epicsEventError; } /* * epicsEventWait () */ -epicsShareFunc epicsEventStatus epicsShareAPI epicsEventWait ( epicsEventId pSem ) +epicsShareFunc epicsEventStatus epicsEventWait ( epicsEventId pSem ) { DWORD status; status = WaitForSingleObject (pSem->handle, INFINITE); @@ -88,7 +88,7 @@ epicsShareFunc epicsEventStatus epicsShareAPI epicsEventWait ( epicsEventId pSem /* * epicsEventWaitWithTimeout () */ -epicsShareFunc epicsEventStatus epicsShareAPI epicsEventWaitWithTimeout ( +epicsShareFunc epicsEventStatus epicsEventWaitWithTimeout ( epicsEventId pSem, double timeOut ) { static const unsigned mSecPerSec = 1000; @@ -122,7 +122,7 @@ epicsShareFunc epicsEventStatus epicsShareAPI epicsEventWaitWithTimeout ( /* * epicsEventTryWait () */ -epicsShareFunc epicsEventStatus epicsShareAPI epicsEventTryWait ( epicsEventId pSem ) +epicsShareFunc epicsEventStatus epicsEventTryWait ( epicsEventId pSem ) { DWORD status; @@ -141,6 +141,6 @@ epicsShareFunc epicsEventStatus epicsShareAPI epicsEventTryWait ( epicsEventId p /* * epicsEventShow () */ -epicsShareFunc void epicsShareAPI epicsEventShow ( epicsEventId id, unsigned level ) +epicsShareFunc void epicsEventShow ( epicsEventId id, unsigned level ) { } diff --git a/src/libCom/osi/os/posix/osdEvent.c b/src/libCom/osi/os/posix/osdEvent.c index 9c1a5a88b..cfd80aa67 100644 --- a/src/libCom/osi/os/posix/osdEvent.c +++ b/src/libCom/osi/os/posix/osdEvent.c @@ -94,6 +94,7 @@ epicsShareFunc epicsEventStatus epicsEventTrigger(epicsEventId pevent) } status = pthread_mutex_unlock(&pevent->mutex); checkStatusReturn(status, "pthread_mutex_unlock", "epicsEventTrigger"); + return epicsEventOK; } epicsShareFunc epicsEventStatus epicsEventWait(epicsEventId pevent)