In disconnectAllChannels mark channels as unassigned to any list
because in some unusual situations (abrupt shutdown) the channels are
not immediately assigned to another list.
* Renamed the enum epicsEventWaitStatus to epicsEventStatus
* Defined epicsEventWaitStatus as a macro for epicsEventStatus
* Renamed epicsEventWaitOk to epicsEventOk
* Renamed epicsEventWaitError to epicsEventError
* Defined epicsEventWaitOK and epicsEventWaitError as macros
* Added epicsEventTrigger(id) which triggers an event and returns OK or an
error status if the underlying OS primitives report an error
* Added epicsEventMustTrigger(id) which halts on error
* Defined epicsEventSignal(id) as a macro for epicsEventMustTrigger(id)
* Added a new C++ method epicsEvent::trigger() which throws an
epicsEvent::invalidSemaphore in the event of an error
* epicsEvent::signal() makes an inline call to epicsEvent::trigger()
* epicsEventWait() and epicsEventWaitWithTimeout() now return an error
status if the underlying OS primitives report an error
* All the epicsEventMust...() routines are now implemented in the common
libCom/osi/epicsEvent.cpp source file, and call cantProceed() instead of
mis-using assert()
* Implemented epicsEventShow() on Posix
Each SRC_DIR gets its own Makefile fragment, and where it needs
private build rules a RULES files.
If this pattern gets used elsewhere we could automate the include
lines (search $(SRC_DIRS) for Makefiles and RULES files?).
Don't use epicsMutexMustLock() in msgbufGetFree().
When we're shutting down, the pvtData.msgQueueLock gets destroyed.
This makes msgbufGetFree() return NULL if the lock is dead.
The epicsMutexMustLock() routine asserts(), which recurses...
Fixed a bug reported by Michael Abbott, NORD goes -ve.
Modified soft channel support so when INP="" it extracts the relevent
sub-array of the existing VAL field; use an external put to set the
array. This lets the other records pull a series of values from the
record in sequence.
Cygwin 1.7 changed the socket shutdown method from BothShutdown
to Close. This fix looks at the cygwin version to work out what
value to return from esscimqi().
o gnu compiler for windows doesnt support well dll exporting individual functions from a class
in debug builds so I switched to exporting the entire interface class in several places
o fixed several places in ca lib where include of epicsTimer.h wasnt properly ifdef'd so
that it is imported by ca header files
--- these issues were already fixed on cvs main trunk ---
Made epicsThreadOnceTest more deterministic, replacing an
epicsThreadSleep() with epicsEventMustWait(), and added a diagnostic
message before running the thread recurse test.
Eric added a series of checks to epicsEventTest.cpp which ensure that
epicsEventSignal() only wakes one waiting thread.