Commit Graph

3596 Commits

Author SHA1 Message Date
Andrew Johnson
c71093f47f libCom/iocsh: Oops, allow NULL pathname. 2011-04-26 15:18:30 -05:00
Andrew Johnson
c11a31f549 libCom/iocsh: Set IOCSH_STARTUP_SCRIPT env var. 2011-04-26 14:57:26 -05:00
Michael Davidsaver
2949f6650e errlog: Flush messages before exit
When an exit is requested process all messages before exiting.

The atExit flag is set, so no new messages can be added to the buffer.
2011-04-12 18:12:52 -05:00
Andrew Johnson
8418aa059a libCom/test: Suppress g++ build warnings from epicsCalcTest
Newer versions of gcc support #pragma GCC diagnostic
2011-04-07 17:25:02 -05:00
Andrew Johnson
c10e450544 More merges from the 3-14 branch. 2011-04-05 17:38:57 -05:00
Andrew Johnson
038ac0cd38 Fix some build issues with old Solaris C++ compiler.
src/libCom/test/epicsExceptionTest.cpp:
  exThread needs a destructor

src/cas/generic/st/casStreamOS.cc:
  Can't use inline as armSend already called
2011-04-05 16:08:49 -05:00
Andrew Johnson
8dea585dc2 FreeBSD update to osdSock.h from Gerrit Kuehn. 2011-04-05 12:32:39 -05:00
Jeff Hill
0dab032751 avoid c++ static initialization order issues 2011-04-05 09:23:22 -06:00
Jeff Hill
4b780b1011 avoid c++ static initialization order issues 2011-04-04 17:50:49 -06:00
Jeff Hill
fc3e876d57 avoid c++ static initialization order issues 2011-04-04 17:29:51 -06:00
Andrew Johnson
e14b1e3d0b Merged various changes from the 3.14 branch. 2011-03-01 15:28:45 -06:00
Andrew Johnson
f4528ff5e1 libCom: Fix msgbufGetNode() in errlog.c
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.
2011-03-01 15:03:33 -06:00
Andrew Johnson
e540ae0774 libCom: Ommitted to include the flex/RULES file. 2011-02-25 23:54:30 -06:00
Michael Davidsaver
f7fc564556 Fold antelope/flex and asHost into libCom
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
2011-02-25 15:39:44 -06:00
Andrew Johnson
588ea50bfb Split libCom/Makefile into individual subdirectories.
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.
2011-02-25 00:49:03 -06:00
Jeff Hill
fd72cb63bf libCom/WIN32: Merged Jeff's fix for bug 717252
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.
2011-02-11 16:33:58 -06:00
Andrew Johnson
c698853394 libCom: Merged Jeff's epicsThread change.
When finished waiting for a thread to exit, signal the event in case
other threads are waiting also.
2011-02-11 15:04:04 -06:00
Andrew Johnson
22f1e8201f libCom/WIN32: Merged Jeff's WIN32/osdThread changes
Fixed spelling and other cosmetic changes.
2011-02-11 15:01:39 -06:00
Andrew Johnson
b38127450e libCom/WIN32: Merged Jeff's osdTime fix
Fixed last time compare in PLL drift factor update loop.
2011-02-11 14:59:35 -06:00
Andrew Johnson
072b449bb1 libCom: Fixed epicsEvent issues on Win32 and cygwin.
* Removed all epicsShareAPI decorations
* Return value from Win32 epicsEventTrigger() inverted
* Return OK from posix epicsEventTrigger() omitted.
2011-02-08 14:17:47 -06:00
Andrew Johnson
77192b3228 libCom: Reworked the epicsEvent APIs
* 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
2011-02-08 12:02:08 -06:00
Jeff Hill
5a11866431 when finished waiting for a thread to exit, signal the event in case other threads are waiting also 2011-01-14 18:01:53 -07:00
Jeff Hill
253036c36c o committing merge of r3.14 trunk change
o fixed spelling and other cosmetic changes
2011-01-14 18:00:02 -07:00
Jeff Hill
793639f4da fixed last time compare in PLL drift factor update loop 2011-01-14 17:56:49 -07:00
Andrew Johnson
cddd8d9563 Merged errlog fix from 3.14 branch. 2011-01-07 10:38:58 -06:00
Michael Davidsaver
6170dc9406 libCom: Fix errlogPrintf() assert fail at shutdown
If errlogPrintf() gets called during shutdown, it can cause a
recursive assert failure.

Fixes lp:693534
2011-01-07 10:24:31 -06:00
Michael Davidsaver
4910c76925 move alarm.h to libCom/misc 2010-12-17 14:05:59 -05:00
Michael Davidsaver
2cf6f43c5f Split up src/util
Move log server into libCom with the log client.
Move caRepeater init script and ca_test into ca/client/
2010-12-17 12:21:29 -05:00
Michael Davidsaver
b52927e66c Move asHost to libCom/as 2010-12-17 11:50:52 -05:00
Michael Davidsaver
31533ba62e Fixup Makefiles
Adjust TOP and paths
2010-12-16 17:05:05 -05:00
Michael Davidsaver
2a36a3906d Stage 1 reorganization
Directory moves.

  src/RTEMS/ => src/libCom/RTEMS/
  src/as/ => src/ioc/as/
  src/bpt/ => src/ioc/bpt/
  src/ca/ => src/ca/client/
  src/cap5/ => src/ca/client/perl/
  src/cas/ => src/ca/legacy/pcas/
  src/catools/ => src/ca/client/tools/
  src/db/ => src/ioc/db/
  src/dbStatic/ => src/ioc/dbStatic/
  src/dbtools/ => src/ioc/dbtemplate/
  src/dev/softDev/ => src/std/dev/
  src/dev/testDev/ => src/std/test/
  src/excas/ => src/ca/legacy/pcas/ex/
  src/gdd/ => src/ca/legacy/gdd/
  src/makeBaseApp/ => src/template/base/
  src/makeBaseExt/ => src/template/ext/
  src/misc/ => src/ioc/misc/
  src/rec/ => src/std/rec/
  src/registry/ => src/ioc/registry/
  src/rsrv/ => src/ioc/rsrv/
  src/softIoc/ => src/std/softIoc/
  src/toolsComm/ => src/libCom/tools/
2010-12-16 15:15:52 -05:00
Andrew Johnson
9a831f9dc5 libCom: Simplify libCom/Makefile by splitting into parts
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?).
2010-12-10 15:23:42 -06:00
Andrew Johnson
055d312519 Merged deprecations work. 2010-11-24 16:28:57 -06:00
Andrew Johnson
c503a03f37 libCom/errlog: Clean up possible problem at shutdown.
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...
2010-11-15 15:46:40 -06:00
Andrew Johnson
2477bf52e6 libCom: Cygwin socket unblocking again...
It helps to include the cygwin header file that
actually has the version number in it...
2010-11-04 14:24:13 -05:00
Andrew Johnson
e7179fc289 libCom: Fix cygwin socket shutdown issue.
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().
2010-11-04 13:30:44 -05:00
Jeff Hill
f340b3e153 o removed -O3 from mingw debug builds (so the issues below are reproduced on mingw)
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 ---
2010-11-04 10:19:54 -06:00
Andrew Johnson
1e6464cdc4 libCom/test: Various improvements.
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.
2010-10-29 11:58:44 -05:00
Janet Anderson
143fef7508 Modified test for _MINGW and _TIMESPEC_DEFINED. 2010-10-26 16:48:40 -05:00
Janet Anderson
87e670f5ca Added ifdef around timespec definition for MinGW build. 2010-10-26 16:25:30 -05:00
Andrew Johnson
03539b05a4 libCom/test: run epicsMutexTest loops a fixed number of times.
Windows sometimes managed to run an extra loop before this change.
2010-10-26 11:45:13 -05:00
Andrew Johnson
66864fcb23 libCom/osi: More NTP time quality checking.
Reject NTP timespec values before the EPICS epoch.
2010-10-22 17:34:13 -05:00
jba
2957fdcaf7 Changed (DWORD*) to (const ULONG_PTR*) to avoid windows-x64 debug build
error.
2010-10-22 17:08:41 -05:00
Andrew Johnson
f1a00dd667 libCom/osi: Warn if NTP time stops or decreases.
Add warnings if the NTP time provider sees NTP time stopping or going
backwards.  Should never happen, but...
2010-10-20 11:44:48 -05:00
Ralph Lange
3df265103d libcom/osd/rtems: Fix by M. Davidsaver to use an epheremal receiver port for the NTP synchronization. 2010-10-20 10:35:51 -04:00
Andrew Johnson
ed916cd1b3 Delete osf-alpha target (and host) support, no longer working or needed at KEK. 2010-10-14 14:01:40 -05:00
Andrew Johnson
cf7f84cb2f Remove 3.13 compatibility build vars 2010-10-12 11:27:17 -05:00
Andrew Johnson
6f8c946d76 libCom: Recognize -pre and -rc in version snapshot. 2010-10-08 15:17:55 -05:00
Andrew Johnson
881d13ac07 Merged the expand-calc-size branch.
This allows calc and calcout record expressions to be up to
79 characters long, and shortens the postfix buffer needed by
introducing integer literals.  Also removes the length limit
for access security CALC expressions.
2010-10-07 14:16:24 -05:00
Andrew Johnson
fbda9f3280 RCS keyword updates for Bazaar
Replaced $Id$ and $Header$ keywords with $Revision-Id$
Deleted $Log$ keywords and any log messages
2010-10-05 14:27:37 -05:00