Andrew Johnson
aedea0da37
default/osdSpin.c add missing #include "cantProceed.h"
...
Also adjusted some error messages for common style.
2014-08-02 23:15:43 -05:00
Andrew Johnson
b7f8f17227
blockingSockTest: Undo member renames using m_ prefix
...
Using the m_ prefix to denote class data members is dangerous in
code that has to compile on VxWorks 5.5 (which 3.15 does) because
the net/mbuf.h header contains the following macro definitions:
#define m_next mBlkHdr.mNext
#define m_len mBlkHdr.mLen
#define m_data mBlkHdr.mData
#define m_type mBlkHdr.mType
#define m_flags mBlkHdr.mFlags
#define m_nextpkt mBlkHdr.mNextPkt
#define m_act m_nextpkt
#define m_pkthdr mBlkPktHdr
#define m_ext pClBlk
#define m_extBuf m_ext->clNode.pClBuf
#define m_extFreeRtn m_ext->pClFreeRtn
#define m_extSize m_ext->clSize
#define m_extRefCnt m_ext->clRefCnt
#define m_extArg1 m_ext->clFreeArg1
#define m_extArg2 m_ext->clFreeArg2
#define m_extArg3 m_ext->clFreeArg3
#define m_copy(m, o, l) m_copym((m), (o), (l), M_DONTWAIT)
#define m_copym(m, o, l, w) netMblkChainDup(_pNetDpool, (m), (o), (l), (w))
#define m_freem(m) netMblkClChainFree(m)
#define m_free(m) netMblkClFree(m)
#define m_mbufs mNum
#define m_drops mDrops
#define m_wait mWait
#define m_drain mDrain
#define m_mtypes mTypes
While the names in the original change all appear to be safe, I
don't want us to start using this convention because we will then
have to police commits more closely or risk build failures in the
future when someone who doesn't know about or remember the issue
can't or doesn't try building their code against VxWorks 5.5.
I don't particularly like the this-> convention to mark member
names either, but until the VxWorks 5.5 support requirement goes
away the m_ convention is worse. Another common convention of
using a leading underscore is not safe either, those names are
reserved for the C/C++ implementation.
2014-08-02 14:02:43 -05:00
Andrew Johnson
8d5cdc3747
Fix typo in macro name
...
Not that it really matters since only VxWorks and RTEMS actually
compile this file and they don't have shared libraries...
2014-08-02 13:13:49 -05:00
Andrew Johnson
f1a59aa64a
Use epicsUInt types, stdint.h is not found on all platforms
2014-08-02 13:09:07 -05:00
Andrew Johnson
6767f5089f
threadPool: Replaced errno.h status values with S_pool_* ones
...
ETIMEDOUT is not provided on MinGW.
2014-08-01 17:55:53 -05:00
Andrew Johnson
59a0fa9364
Fix vxWorks again, passes the tests on all my CPUs now.
2014-08-01 16:06:17 -05:00
Andrew Johnson
fcd0a4c75d
Fixes for VxWorks implementation.
2014-07-31 15:43:35 -05:00
Andrew Johnson
ab78480d54
Merged spinlockfix branch.
...
Some last-minute fixes for VxWorks build warnings.
2014-07-31 12:45:40 -05:00
Andrew Johnson
68bcc77885
Merged alarm-strings branch.
2014-07-31 10:17:24 -05:00
Andrew Johnson
b3afbea7cf
Merged Michael's thread-pool branch.
...
Made various formatting changes, and fixed one problem in the
test program which failed a test on UP machines.
2014-07-29 16:05:24 -05:00
Michael Davidsaver
716f2679a7
thread pool: don't use reserved names
...
Avoid global symbols with leading underscore
2014-07-29 12:21:07 -04:00
Michael Davidsaver
b1a8b2f20e
thread pool: switch thread counts to unsigned int
...
size_t is considered overly optimistic
2014-07-29 12:18:19 -04:00
Michael Davidsaver
6fee83900e
don't include errCommon.h
...
doesn't exist anymore
2014-07-29 12:06:24 -04:00
Andrew Johnson
75da9fd454
Moved dlopen version of osdFindSymbol.c into posix
...
It was identical in solaris, Darwin and Linux, and had
not been included for cygwin so this reduces duplication.
2014-07-28 12:27:02 -05:00
Michael Davidsaver
c4a1208d6e
epicsSpinTest: add to libCom test harness
2014-07-25 18:17:27 -04:00
Michael Davidsaver
9cb65e5408
epicsSpinTest: plug some leaks
2014-07-25 18:17:02 -04:00
Andrew Johnson
2a9d05248f
Fix epicsSpinTest.c spinThread tests
...
Runs many more rounds, without blocking with the lock held.
2014-07-25 16:21:03 -05:00
Andrew Johnson
752549d1c8
Fix epicsAtomic headers when used from C code
...
Several C++ and C99-isms crept in.
2014-07-25 15:05:58 -05:00
Michael Davidsaver
8fec9d6e00
epicsSpin: try lock return non-blocking
...
Avoid cantProceed() in try lock, even for undefined behavior.
2014-07-25 15:12:02 -04:00
Michael Davidsaver
5824f98972
epicsSpinTest: fix verifyTryLock()
...
avoid sleeping with a spinlock held.
Now test only works on SMP systems.
2014-07-25 15:11:54 -04:00
Michael Davidsaver
b5fe4abfa8
switch to use sysInWord and friends
2014-07-25 11:15:27 -04:00
Michael Davidsaver
95b916ecd4
thread pool: mark epicsJobCreate() as safe for job functions
...
Also, use epicsJobMove() to avoid some redundant code
2014-07-25 10:16:20 -04:00
Michael Davidsaver
cbfbce54f9
thread pool: epicsThreadPoolWait return ETIMEOUT
2014-07-25 09:59:46 -04:00
Michael Davidsaver
b3a1fe9c6b
thread pool: fix return of epicsJobUnqueue()
...
Return 0 on success (was queued, now is not),
1 if not queued initially, and EINVAL
if orphaned.
2014-07-24 18:56:27 -04:00
Michael Davidsaver
83dfc7980d
thread pool: handle failure to create worker
...
epicsJobQueue() returns EAGAIN when the first worker
can't be lazily created.
Failure to create workers beyond the first is
silently ignored.
2014-07-24 18:50:19 -04:00
Michael Davidsaver
69d1063067
thread pool: epicsJobQueue return EPERM
...
When pool control prevents operation
2014-07-24 18:19:33 -04:00
Andrew Johnson
9b6e270b97
Final spinlock tidying-up
...
* Abort epicsSpinTest() if epicsSpinCreate() returns NULL
* Adjust RELEASE_NOTES that describe the implementations.
2014-07-24 16:33:35 -05:00
Michael Davidsaver
fc4119094f
thread pool: epicsThreadPoolGetShared accepts NULL as defaults
2014-07-24 14:44:28 -04:00
Michael Davidsaver
01a50b5165
thread pool test
2014-07-24 14:22:52 -04:00
Michael Davidsaver
658bd0b570
thread pool implementation
2014-07-24 14:22:52 -04:00
Michael Davidsaver
a8fd14aae1
Thread pool API
2014-07-24 14:22:52 -04:00
Michael Davidsaver
87a6688c17
epicsSpin: remove redundant cantProceed() messages
2014-07-24 10:23:55 -04:00
Michael Davidsaver
3ba5bf943e
epicsSpin: better error messages when mis-use is detected
2014-07-23 18:40:08 -04:00
Andrew Johnson
6bdb8f911a
Suppress errlog output of expected warning messages.
2014-07-23 16:18:32 -05:00
Michael Davidsaver
0bf17be9e3
mmio: vxWorks m68k use default, add weak symbols for old versions
2014-07-16 15:12:56 -04:00
Andrew Johnson
3ff49fc9b2
Fixed build errors, remove dependency on std.
...
Build errors: Include guard missing from epicsUnitTest.h;
dbShutdownTest.c was calling the non-universal strcasecmp()
instead of epicsStrCaseCmp().
ioc/db/test no longer depends on std. I modified
xRecord to make it a working record type, and simplified the
other test programs so they all use the same new expanded
dbd file rather than each making their own. I also added
dbShutdownTest() to epicsRunDbTests().
2014-07-10 14:27:44 -05:00
Andrew Johnson and Michael Davidsaver
60a0c7f181
Make epicsExit subsystem reusable.
...
Calling epicsAtExit() after epicsExitCallAtExits() now
recreates the per-process list and registers the routine.
2014-06-23 16:28:25 -04:00
Michael Davidsaver and Michael Davidsaver
3ca42fc838
cleanup iocsh
2014-06-23 16:28:22 -04:00
Michael Davidsaver and Michael Davidsaver
ad2bb0725d
asShutdown
2014-06-23 16:28:22 -04:00
Michael Davidsaver and Michael Davidsaver
f405b444a3
errlog: nicer exit handler name
2014-06-23 16:28:19 -04:00
Michael Davidsaver and Michael Davidsaver
a28a561d8a
epicsExit: optional debug printing
...
Add a flag to cause a string to be printed
before each handler is run to show the order.
2014-06-23 16:28:18 -04:00
Jeff Hill johill@lanl.gov
e374ee4658
patched this code to force alignment of the if request structure, which appears to be required to avoid exceptions on RTEMS with cpu architectures that detect use of misaligned addresses
2014-06-10 22:37:21 -06:00
Andrew Johnson
9e1ebf8d0f
Clean up build warnings from Darwin (clang).
2014-05-30 12:36:50 -05:00
Michael Davidsaver
80b64d6a30
spinlocks update
...
add epicsSpinMustCreate()
Fix spinlock on RTEMS and vxWorks
UP systems to disable task preemption.
Don't use posix spinlocks when
thread priorities are used.
2014-05-23 15:14:49 -04:00
Andrew Johnson
7dd5e217f6
Merged Ralph's get-cpus branch.
2014-05-19 09:44:05 -05:00
Ralph Lange
722d5eeba7
libCom/osi: use epicsThreadGetCPUs implementation from thread-pool branch (posix, WIN32)
2014-05-18 17:24:38 +02:00
Andrew Johnson
2b7781c8d9
Support for Solaris 11 on x86 and SPARC.
...
Thanks to Bob Soliday for the necessary changes.
2014-04-25 16:51:28 -05:00
Andrew Johnson
9170d79ffe
libCom/test: isinf() and isnan() want doubles
...
This apparently becomes important in a newer GCC version.
2014-04-25 14:08:25 -05:00
Andrew Johnson
f24dafa1e0
libCom: Adjust the Posix epicsMutexOSD structure
...
Make pthread_mutex_t lock the first member of the
parent structure, so it's easy to convert between them.
2014-04-01 11:09:36 -05:00
Andrew Johnson
4b18edc586
Merged changes from 3.14 branch.
...
Up to revno 12479.
2014-03-13 15:04:31 -05:00