Commit Graph
21 Commits
Author SHA1 Message Date
Andrew Johnsonandmdavidsaver 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 Johnsonandmdavidsaver 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
Michael Davidsaver f9ac164ee7 Revert "try to fix downstream win32 linking"
This reverts commit 4f0c4c46a3.
2019-05-16 18:09:47 -07:00
Michael Davidsaver 4f0c4c46a3 try to fix downstream win32 linking 2019-05-16 14:03:45 -07:00
Michael Davidsaver bfff9275bd always need to link with netapi32 now 2019-01-12 17:07:24 -08:00
mrkraimer 16268cc9d6 add channelConnectThread; should fix connecting to 50000 channels 2018-07-20 13:18:59 -04:00
mrkraimer df45c70149 add putDoneThread and getDoneThread; fix issue 114 2018-07-14 11:46:26 -04:00
mrkraimer 184e92b346 delete stopMonitorThread; add monitorEventThread 2018-06-19 13:11:01 -04:00
mrkraimer fe8184cf95 added aux thread to call ca_clear_subscription 2018-06-08 15:22:08 -04:00
mrkraimer ded28bbd3b try to get more travis build to work 2018-05-11 11:00:10 -04:00
mrkraimer 71303063a5 redo conversion between DBD and pvData 2018-03-31 06:46:25 -04:00
Michael Davidsaver 60c97c3e88 drop MBLIB 2017-10-05 11:10:27 +02:00
Michael Davidsaver e14b811b53 install CONFIG_PVA_CORE 2017-10-05 11:00:01 +02:00
mrkraimer 180895c1e0 attempt to fix win32 shared build 2017-08-07 15:26:22 -04:00
mrkraimer d36e6f31b1 CAProvider: only CAClientFactory is public 2017-08-07 11:05:20 -04:00
Michael Davidsaver ae501327cd don't install internal caChannel.h 2017-07-18 18:18:14 +02:00
Michael Davidsaver 132189a5eb more makefile 2017-07-17 14:43:50 +02:00
Michael Davidsaver 2c530868f6 split out caprovider as libpvAccessCA
fixup multi-library build
2017-07-17 13:51:20 +02:00
Michael Davidsaver 58914fd093 update Makefiles for pv/
add pv/ prefix for INC
2016-01-26 15:50:49 -05:00
Matej Sekoranja 667bc8e6cc DBR status <-> NT status mapping 2015-01-22 10:03:09 +01:00
Andrew Johnson a886984258 Rename pvAccessApp to src, adjust Makefiles 2014-03-28 11:53:02 -05:00