25 #include "libComAPI.h" 40 pSem = malloc (
sizeof ( *pSem ) );
57 CloseHandle ( pSem->
handle );
67 status = SetEvent ( pSem->
handle );
77 status = WaitForSingleObject (pSem->
handle, INFINITE);
78 if ( status == WAIT_OBJECT_0 ) {
96 if ( timeOut <= 0.0 ) {
99 else if ( timeOut >= INFINITE / mSecPerSec ) {
103 tmo = ( DWORD ) ( ( timeOut * mSecPerSec ) + 0.5 );
108 status = WaitForSingleObject ( pSem->
handle, tmo );
109 if ( status == WAIT_OBJECT_0 ) {
112 else if ( status == WAIT_TIMEOUT ) {
127 status = WaitForSingleObject ( pSem->
handle, 0 );
128 if ( status == WAIT_OBJECT_0 ) {
131 else if ( status == WAIT_TIMEOUT ) {
LIBCOM_API epicsEventStatus epicsEventWaitWithTimeout(epicsEventId pevent, double timeout)
Wait an the event or until the specified timeout period is over.
LIBCOM_API epicsEventStatus epicsEventTrigger(epicsEventId pevent)
Trigger an event i.e. ensures the next or current call to wait completes.
struct epicsEventOSD epicsEventOSD
LIBCOM_API epicsEventId epicsEventCreate(epicsEventInitialState init)
Create an epicsEvent for use from C code, or return NULL.
LIBCOM_API void epicsEventShow(epicsEventId pevent, unsigned int level)
Display information about the semaphore.
LIBCOM_API epicsEventStatus epicsEventTryWait(epicsEventId id)
Similar to wait() except that if the event is currenly empty the call will return immediately with st...
APIs for the epicsEvent binary semaphore.
epicsEventStatus
Return status from several C API routines.
epicsEventInitialState
Possible initial states of a new epicsEvent.
LIBCOM_API epicsEventStatus epicsEventWait(epicsEventId pevent)
Wait for an event.
const unsigned mSecPerSec
LIBCOM_API void epicsEventDestroy(epicsEventId pevent)
Destroy an epicsEvent and any resources it holds.