Andrew Johnson
964a6bc33a
Major updates in testCa, run on RTEMS under QEMU
2021-01-05 11:01:02 -08:00
Andrew Johnson
92002b6ba2
Include pvAccess.h before exportSharedSym's in caContext.cpp
2021-01-05 11:01:02 -08:00
Andrew Johnson
33cc9b1fdb
Define epicsExportSharedSymbols in ca/notifierConveyor.cpp
2021-01-05 11:01:02 -08:00
Andrew Johnson
23c9b09c1e
Re-enable running of testCaProvider on Windows
2021-01-05 11:01:02 -08:00
Andrew Johnson
8b3a057a69
Have notifierConveyor trap and drop any exceptions
2021-01-05 11:01:02 -08:00
Andrew Johnson
f9c40e96cf
Collect ca_client_context operations
...
Each instance of the caContext class represents a separate CA context,
so each CAChannelProvider creates one and keeps a shared_ptr to it,
making that available to its channels and channel operations. These
also take their own shared_ptr to it as well so the context cannot be
destroyed while it might be needed.
A related caContext Attach object is intended to be short-lived, and
to be allocated on the stack. When created it saves the current CA
context for the thread, replacing it from the caContext given to its
constructor. CA operations will now use the attached context. When the
Attach destructor runs it detaches the thread from the current context
(checking still has the expected value) and re-attaches the thread to
any context that was saved by the constructor.
2021-01-05 11:01:02 -08:00
Andrew Johnson
25dde0f4ba
Make Codacy happier
2021-01-05 11:01:02 -08:00
Andrew Johnson
06c2fb579f
Replaced 4 notification threads with 2 notifierConveyors
...
Channel connection notifications are now handled by connectNotifier,
getDone, putDone and monitor events handled by resultNotifier.
A notifierConveyor is generic, and contains a queue and a thread.
You pass a Notification pointing to a NotifierClient to a Conveyor's
notifyClient() method, and the thread will call the client's
notifyClient() method once it reaches the front of the queue.
The conveyor threads stop when the caProvider is destroyed.
The queue stores weak pointers, so queued notifications won't prevent
client objects from being destroyed.
2021-01-05 11:01:02 -08:00
Andrew Johnson
2729903a10
Make the channelConnectThread per-provider
...
This passes the tests (on MacOS).
2021-01-05 11:01:02 -08:00
Andrew Johnson
601280836d
Move caProvider worker threads shutdown to static destructors
2021-01-05 11:01:02 -08:00
Andrew Johnson
44fda51935
Start of major overhaul
...
Moved duplicated EXCEPTION_GUARD macro to private header file.
Removed all DEBUG_LEVEL and similar prints.
Some reformatting and code simplification.
2021-01-05 11:01:02 -08:00
Andrew Johnson
05c2b605aa
Enhancements to testCaProvider
...
Loop the tests so we check for destroying the caProvider.
Move the shutdown call inside the try/catch.
2021-01-05 11:01:02 -08:00
Andrew Johnson
9671ee132e
caProvider threads: Lock the mutex while reading isStop state
2021-01-05 11:01:02 -08:00
Michael Davidsaver
f9cbaf72ff
fix ci
2020-12-05 07:41:06 -08:00
Michael Davidsaver
ebeaa18486
use ci-core-dumper
2020-12-04 11:51:24 -08:00
Michael Davidsaver
29c0656412
ci: run RTEMS tests
2020-11-22 11:58:33 -08:00
Michael Davidsaver
d005260017
hackAroundRTEMSSocketInterrupt
2020-11-22 11:58:33 -08:00
Michael Davidsaver
9423252416
testChannelAccess disable for RTEMS
...
Doesn't pass. for RTEMS 4.x. Not clear why.
Disable so that the remaining tests can be run.
2020-11-22 11:57:02 -08:00
Michael Davidsaver
e13cee1d5c
Disable testCaProvider for <=3.15 and WIN32
...
Random hangs on WIN32.
Seems to crash with 3.15 (github actions)
2020-11-22 11:53:58 -08:00
Michael Davidsaver
5a72232028
update ci
...
update ci-scripts
switch travis-ci -> github actions
Enable RTEMS testing
2020-11-22 11:53:58 -08:00
Michael Davidsaver
597f168b9c
fixup tests for RTEMS
2020-11-22 11:53:58 -08:00
Michael Davidsaver
01637cfbbe
Revert "rtemsTestHarness needs no data files"
...
This reverts commit cca473ed0e .
2020-11-21 10:32:18 -08:00
Michael Davidsaver
fc4e3c5d44
discoverInterfaces() correctly ignore non-IPv4 addresses
...
Must check sa_family early, before attempting to copy
in case sockaddr needs more storage than sockaddr_in.
2020-11-21 10:32:18 -08:00
Michael Davidsaver
684da91675
testServerContext fix # of tests
2020-11-21 10:32:16 -08:00
Michael Davidsaver
325b138467
Revert "Add support for socket addresses other then IPv4"
...
This reverts commit 7db4f94b8b .
2020-11-21 10:31:22 -08:00
Michael Davidsaver
862f08a9d3
Revert "Add check for the definition "darwin" to support Mac"
...
This reverts commit 53cd4fa3ef .
2020-11-21 10:31:22 -08:00
Michael Davidsaver
3b2261a61f
Remove unused alignBuffer() and alignData()
2020-11-14 12:01:47 -08:00
Michael Davidsaver
cca473ed0e
rtemsTestHarness needs no data files
2020-11-11 08:08:15 -08:00
Michael Davidsaver
564f19e466
handle exception in authGblInit()
...
Don't allow c++ exceptions to propagate to epicsThreadOnce()
2020-11-10 23:03:48 -08:00
Michael Davidsaver
d17d44ba0c
minor
2020-11-10 23:03:48 -08:00
Heinz Junkes
53cd4fa3ef
Add check for the definition "darwin" to support Mac
2020-08-20 12:00:06 +02:00
Heinz Junkes
af550178e8
Merge branch 'fixUtils'
2020-08-19 16:38:05 +02:00
Heinz Junkes
7db4f94b8b
Add support for socket addresses other then IPv4
2020-08-19 16:07:11 +02:00
Michael Davidsaver
c6199d359a
travis-ci network fixup
2020-08-12 18:55:26 -07:00
Michael Davidsaver
fe43843a08
add test coverage for discoverInterfaces
2020-08-12 18:55:26 -07:00
Michael Davidsaver
084eb08138
Set next development version
2020-07-26 13:36:14 -07:00
Michael Davidsaver
8e183c23e1
Update version numbers for release
7.1.2
2020-07-26 13:34:46 -07:00
Michael Davidsaver
88c11f68a2
doc
2020-06-20 11:12:42 -07:00
Michael Davidsaver
53d18e6a03
SharedPV handle bad_weak_ptr earlier
...
Avoid operating on partly destroyed object.
2020-06-15 09:37:11 -07:00
Michael Davidsaver
a97c5b1cbb
SharedPV::post() handle bad_weak_ptr
2020-06-15 09:25:31 -07:00
Michael Davidsaver
3f050f3533
avoid unnecessary re-throw
...
"Failed to initialize UDP transport"
is not a useful error message
2020-06-06 08:01:52 -07:00
Michael Davidsaver
598fa1e596
make Destroyable::destroy() optional
2020-06-03 15:55:09 -07:00
Andrew Johnson
4e85d38bba
Set next development version
2020-05-28 16:26:00 -05:00
Andrew Johnson
1641bd18b4
Update version numbers for release
7.1.1
2020-05-28 15:12:49 -05:00
Michael Davidsaver
3cae45128f
update release notes
2020-05-20 15:09:00 -07:00
Michael Davidsaver
0897836520
ci-scripts 2.3.2 (with appveyor)
2020-04-23 15:16:14 -07:00
Andrew Johnson
8fe018009a
testCaProvider: Add build-time switch to use external IOC
2020-04-16 17:26:28 -07:00
Andrew Johnson
febff66eb4
testCaProvider: Show how we start the IOC
2020-04-16 17:26:28 -07:00
Andrew Johnson
9413d97fd5
testCaProvider: Make system(softIoc) OS-independent
2020-04-16 17:26:28 -07:00
3ba6679e67
removed spaces at end of line
2020-04-15 08:17:03 -07:00