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.
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.
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...
Michael Davidsaver pointed out that the original algorithm used is
dumb, it can't reuse empty space at the beginning until all messages
have been drained. This new version can, and is more efficient.
errPrintf() was adding a newline when writing to the err log buffer,
but not when printing to the screen. This results in the error
message running together with the next line. Added a newline to the
stderr output.
better interface
2) added errSymLookup function with these improvements
o receive a buffer length from user and therefore never overwrite the users buffer
o return void and always copy a string into the users buffer. If the error code cant
be found then copy in a message with the error code's raw numbers in it.
3) removed prototypes for nonexistent fuinctions from header file