Use osiUnistd.h instead.
Add io.h to osiUnistd.h on Windows
# Conflicts:
# modules/libcom/src/flex/flexdef.h
# modules/libcom/src/osi/os/WIN32/osiUnistd.h
* github/7.0:
Unify doxygen keywords to use '\' not '@'
Applied all doxy-libcom changes to latest headers
# Conflicts:
# modules/libcom/src/yajl/yajl_common.h
If fastReceiver() took more than 0.01 seconds to exit,
sleepySender() might have pushed a second message onto
the queue after setting recvExit, so there would be an
extra message in the queue for the next test, which I
was seeing on Appveyor. That's my current theory...
The internal mySend() and myReceive() routines do expect a timeout
of -1 to mean wait forever, see the epicsMessageQueueSend() and
epicsMessageQueueReceive() API routines.
Move the code that wakes up the next sending task to after we've
added our threadNode to the receiveQueue. He still has to wait for
us to release the Mutex though, so this might make no difference.
This commit also changes when we decrement the number of waiting
senders so it always happens immediately after a threadNode gets
taken off the sendQueue by the code that removed it.
When sending a message, if the queue is full so we have to wait, we
create a threadNode with an eventNode in it and stick it on the
sendQueue, then wait for a receiver to signal that event, waking us.
If we awoke due to a timeout but a receiver was actually waking us
up anyway (i.e. eventSent was set), we shouldn't give up.
Introduced freeEventNode() which ensures eventNodes don't have a
signalled event in them before returning the node to the freeList.
Callers pass the status from epicsEventWaitWithTimeout() to indicate
whether it was signalled or not. If it timed out we must trigger it
and Wait to clear the event state.
It appears that previously a negative timeout actually implemented a
'wait forever', but the VxWorks and RTEMS implementations both check
for (timeout <= 0) and return immediately if nothing can be done
without waiting.
* lp-anj7/expanded-rules:
Generate module version files with new RULES_EXPAND facilities
Extend RULES_EXPAND to add more features
More generator doc updates
Document <library>_API = <stem> for Makefiles
Convert epicsShareAPI to epicsStdCall in modules/ca
Update generator script
Modify rules to allow multiple API.h libraries to be built
Convert modules/ca to use LIBCA_API instead of epicsShare
Try out a representative sample of APIs from multiple libraries
Add build rules to generate and install *API.h header files
Add script to generate *API.h headers
* lp-anj7/typed-dsets:
Bump database version to 3.18.0, use in SHRLIB_VERSION
Adjust example code in devSup.h
Set USE_TYPED_DSET centrally now everything uses it
Update the wording of the Release Notes entry
- Record updates: . histogramRecord . eventRecord . aaiRecord . aaoRecord
- Record updates: . aoRecord . biRecord . boRecord . mbbiRecord . mbbiDirectRecord . mbboRecord . mbboDirectRecord . longinRecord . longoutRecord . stringoutRecord . stringinRecord . waveformRecord . calcoutRecord . subArrayRecord
initial typed-dset changes for ao record
Add Release Notes entry about dsets
Export and use aidset, set USE_TYPED_DSET
Remove duplicated include line
Add HAS_<record>dset macros to allow detection
Export and use int64outdset, set USE_TYPED_DSET
Export and use int64indset, set USE_TYPED_DSET
Modify lsodset, set USE_TYPED_DSET
Modify lsidset, set USE_TYPED_DSET
Modify printfdset, set USE_TYPED_DSET