The finite() function is provided in glibc but not in uClibc.
C99 requires isfinite() to be a macro, so we can test for it
and define our own finite() macro in osi/os/posix/epicsMath.h
Our joint conclusion was that wrapping system includes with
extern "C" used to be necessary on some OS builds when C++
was much less common, but is now wrong.
The old test for discriminating between statically and dynamically
linked applications (os/RTEMS/osdTime.cpp:staticTimeRegister()) is
wrong, it never detects a dynamically loaded app.
fixes lp:831648
-------------- This line and the following will be ignored
--------------
modified:
src/libCom/osi/os/RTEMS/osdTime.cpp
This symbol is required to be visible on non-PowerPC (68k) vxWorks
systems for devInterruptInUseVME() to recognize interrupt vectors
that the devDisconnectInterruptVME() routine has marked as not used.
A rare race during shutdown. The contenders are the log thread
coming out of its loop and calling errlogCleanup(), and the
exitHandler signaling waitForWork.
This solution is to move cleanup completely into exitHandler,
which already waits for the log thread to exit.
Systems that generate large numbers of errlog messages or have a slow
message listener could overwrite older messages in the message buffer
after the buffer wraps. This also corrects and annotates the test
code to describe what's being checked.
o Fixed race condition where win32 thread parm was not pushed onto the
list before the thread was started, and so if the thread exits very
quickly it can try to remove a non-existent thread parameter from
the list.
o This impacts only win32.
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...
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.