Commit Graph

2857 Commits

Author SHA1 Message Date
Nick Rees 31790737e4 Added Andrews changes to RULES_BUILD to generate a hint file for the runner 2010-05-27 15:36:52 +01:00
unknown 8337b5063d Fix NULL handle issue 2010-05-27 05:47:07 -05:00
Andrew Johnson 6790acf78f Fix for hang from Ron Sluiter. 2010-05-18 16:12:36 -05:00
Andrew Johnson 6eb36e1224 Fix build on Windows. 2010-05-18 16:10:07 -05:00
Andrew Johnson 6b64304570 Optimize epicsThreadOnce() routines.
Don't call epicsThreadGetIdSelf() unnecessarily, check for the value
EPICS_THREAD_ONCE_DONE first, since that's the most common state.
2010-05-14 17:26:54 -05:00
Andrew Johnson 6cd22d4efe Don't call errlogPrintf() in epicsThreadGetOsiPriorityValue()
This is a partial fix of a WIN32-only problem Mark Rivers reported.
A WIN32 thread created by a manufacturer's library is used to call one
of his callback routines, which tries to use an epics facility that has
an epicsThreadOnce().  The new version of epicsThreadOnce() uses
epicsThreadGetIdSelf() to detect recursive initialization; the thread
doesn't have an epicsThreadId yet, so epicsThreadImplicitCreate() is
asked to make one.  It calls epicsThreadGetOsiPriorityValue(), but
osdPriority is 15 which is not known by that code, so it reports an
error by calling errlogPrintf().  That checks epicsThreadIsOkToBlock()
which calls epicsThreadOnce() but that needs our epicsThreadId...

This doesn't solve the issue of the unknown osdPriority value 15
(priorityClass = 32), but it allows the IOC to continue working with
just a warning message at init time.

It also points out that calling epicsThreadGetIdSelf() every time we
check an epicsThreadOnce() is probably not good for performance.
2010-05-14 16:49:32 -05:00
Andrew Johnson e9593e4b6c Run epicsMessageQueueTest last, since it takes 5 minutes. 2010-05-05 15:43:58 -05:00
Andrew Johnson 831f48e719 Fix the macLib buffer overflow issue, Bug 551909.
This is mostly Eric's patches, without the valend name change.
2010-05-04 15:43:20 -05:00
Andrew Johnson 5868aae543 Define EPICS_THREAD_ONCE_DONE properly on RTEMS. 2010-05-04 14:39:37 -05:00
Andrew Johnson 12dc840eda Don't print anything from epicsThreadShow() when tid=0.
Also don't pass level > 1 to vxWorks taskShow() routine.
2010-05-03 17:28:04 -05:00
Andrew Johnson 7f534cbc74 Rename 'thread' iocsh command to 'epicsThreadShow'. 2010-05-03 17:26:41 -05:00
Andrew Johnson 50d755a79f Fix compiler warning about missing sentinel in execlp() call. 2010-05-03 12:29:13 -05:00
Andrew Johnson d192f51858 Don't use back-tick chars as open quotes, they aren't any more. 2010-04-28 17:29:04 -05:00
Andrew Johnson b4be728539 cvtFastPerform measures performance, it doesn't do functional testing.
* Cleaned up some warning messages in it on darwin
* Removed it from the epicsRunLibComTests function.
2010-04-26 17:19:10 -05:00
Andrew Johnson 6ece3235c9 Added libCom/test code for epicsThreadOnce() implementations.
Also fixed subsystems that were not using epicsThreadOnce correctly.
2010-04-26 15:48:42 -05:00
Andrew Johnson c5a27fa32e Rework epicsThreadOnce() using ideas from Michael Davidsaver.
An epicsThreadOnceId is now an epicsThreadId.
During initialization, it is set to the thread running the init routine
which can now detect a recursive initialization attempt and suspend.
EPICS_THREAD_ONCE_INIT is still zero, the implementations now define a
new private value for EPICS_THREAD_ONCE_DONE.  This is deliberately not
made public.
2010-04-26 15:38:11 -05:00
Michael Davidsaver 356ee58927 use osi epicsMath.h 2010-03-24 13:17:41 -04:00
Michael Davidsaver cadbcb43a2 use C++ name make.h 2010-03-24 11:34:00 -04:00
Michael Davidsaver 75a15809fa epicsTimer: check that delay time is finite 2010-03-16 21:09:52 -04:00
Michael Davidsaver 244796bbaa remove STATIC 2010-03-16 21:09:51 -04:00
Andrew Johnson 3b0036b389 Improve code readablity, add more numeric tests. 2010-03-09 10:49:21 -06:00
Andrew Johnson c29551f247 Rename the time provider name routines, don't rely on the #define. 2010-02-09 10:49:08 -06:00
Andrew Johnson 215bbed49c Include standard headers before defining epicsExportSharedSymbols 2010-01-11 17:56:17 -06:00
Andrew Johnson 023cf2c548 Added redirection support for puts() and putchar(). 2009-12-22 23:47:19 +00:00
Andrew Johnson fd5773a3fc ESHUTDOWN is not in FreeBSD and hence not in RTEMS. 2009-12-22 17:43:25 +00:00
Andrew Johnson b8a2e64601 Added a couple of COMMANDLINE_LIBRARY synonyms for READLINE 2009-09-29 18:58:04 +00:00
Andrew Johnson 534ca2c86e Make ellFree() a 1-argument macro, calls ellFree2() with free as freeFunc. 2009-08-28 18:34:38 +00:00
Andrew Johnson f17ac39f29 Disable divide by zero warnings on MSVC when generating NAN and INF.
Use those values rather than calculating them independently.
2009-08-25 18:19:49 +00:00
Jeff Hill d84e9cb3ec exp passed to assert must not change the state of the data structures 2009-08-24 17:08:41 +00:00
Jeff Hill fa24d119dd use verify instead of assert (in tests) 2009-08-24 17:07:03 +00:00
Andrew Johnson 1c95101ae1 Fixed Till's report of non-thread-safe lazy-init. 2009-08-21 17:32:13 +00:00
Andrew Johnson c28520bea6 Adjust test 66 so it doesn't fail if the gcc optimizer result gives -1 but
glibc returns +1.  Both are correct, gcc is following a newer standard.
2009-08-21 14:49:01 +00:00
Andrew Johnson 87eace1bd4 Fix for solaris compiler complaint about ambiguity of 'exception'. 2009-08-18 19:26:37 +00:00
Jeff Hill 0012042a5e accomodate archaic vxWorks gnu compiler 2009-08-14 17:31:34 +00:00
Jeff Hill 78fc566dc4 improved thread creation failure exception diagnostics 2009-08-14 16:54:45 +00:00
Jeff Hill 6fe047731f added shjow func to epicsThread class 2009-08-10 21:48:50 +00:00
Jeff Hill 56c4c92588 improved show diagnostic 2009-08-10 21:41:59 +00:00
Andrew Johnson 57e5406684 Added STATIC_ASSERT macro.
Removed assert() definition for pre-ANSI C compilers.
2009-08-04 19:07:07 +00:00
Andrew Johnson 4868904839 Added CONTAINER macro, from Micheal Davidsaver (BNL). 2009-08-04 16:31:06 +00:00
Andrew Johnson 90db5a4ab0 Deleted test code which was moved to libCom/test some time ago. 2009-08-03 17:13:04 +00:00
Jeff Hill 72e1dba496 o no need to allocate or initialize one more fd_set than is used
(not a bug but messy)
o added optimization where we only check as many registered fd's
on the list as select tells us are active in its status
o added code to clear all of the  fd_set if select returns an error
(in practice this would not cause a bug other than some extra activity
that would immediately self terminate when it clear the flag in the fd_set,
and also we dont see the error message printed when select returns an error)
2009-07-30 23:21:19 +00:00
Jeff Hill d764e7d4df added "using namespace std" 2009-07-29 15:10:24 +00:00
W. Eric Norum 49ddec4294 Add cvtFastPerform to test harness. 2009-07-29 14:29:54 +00:00
W. Eric Norum fd6d1ce69c As reported by Michael Davidsaver.
Apparently the GeSys dynamic linker doesn't maintain C semantics.
I'm afraid that this behaviour is likely to cause lots of other problems,
but for now I'll apply the patch since it's harmless.
2009-07-23 21:04:27 +00:00
Jeff Hill 844ed6345a test also numbers in -5 to 5 range 2009-07-23 17:32:33 +00:00
Jeff Hill 7315f02888 added cvtFastPerfotm test 2009-07-23 17:25:51 +00:00
Andrew Johnson 3d717f4476 (M. Davidsaver): errnumlist was never initialized.
Removed long-deprecated errSymFind routine.
2009-07-09 20:11:02 +00:00
Andrew Johnson 0fb320c263 (M. Davidsaver): Use ELLLIST init macros. 2009-07-09 18:37:26 +00:00
Andrew Johnson 9663cd58f1 Fixed ELL*_INIT macros. 2009-07-09 17:51:17 +00:00
Andrew Johnson 039648824c Remove redundant macro definitions already defined in dbDefs.h
(M. Davidsaver)
2009-07-09 17:06:45 +00:00