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.
Combine recIoc and softDevIoc libraries into dbRecStd
Move base.dbd from ioc/misc/ to std/softIoc/
Generate stdRecords.dbd from the std/rec/Makefile list of record
types instead of hard-coding it in base.dbd
Merge miscIoc rsrvIoc dbtoolsIoc asIoc dbIoc registryIoc dbStaticIoc
into dbCore.
Move ioc/misc/asSubRecordFunctions.c to std/dev/asSubRecordFunctions.c
since it depends on the subRecord type.
Extracted ioc variable definitions from base.dbd into dbCore.dbd
Build lexer and parser from libCom/Makefile.
Since libCom now includes asLib.c and asLib_lex.c we must build
antelope and flex without linking them to Com. This works because
they only need epicsTempFile anyway. However make doesn't like a
subdirectory with the same name as a target object, so the antelope
source directory is now called yacc. The two main.c files were also
renamed to avoid other build problems.
Merge asHost into Com and remove mentions in CONFIG_BASE
Lots of noise since SRCS must be renamed to Com_SRCS
The new Makefile fragments in the subdirectories are incomplete and will
not work individually. Build rules are placed in a separate RULES file.
This approach keeps the instructions for building each file local and
easier to find than in a large Makefile in the parent directory.
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.
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
Use '-b' argument of antelope to control generated file name
for safe parallel builds.
Move conditional into command so that it is possible to build
parsers which generate a header in the same directory as parsers
which do not. Allow YACCOPT per target, but default to global.