Commit Graph

13 Commits

Author SHA1 Message Date
Michael Davidsaver
855335f3b1 client.h guard concurrent callbacks on cancel
cancel() blocks until concurrent callbacks have
completed.  Also serializes any callbacks for each
Operation/Monitor.
2018-09-26 10:28:18 -07:00
Michael Davidsaver
d01421bf30 client.h cleanup 2018-09-26 10:28:18 -07:00
Michael Davidsaver
512cc11923 client: avoid race during monitor shutdown
poll() vs. cancel()
2018-07-09 15:19:52 -07:00
Michael Davidsaver
80db41f1c4 pva/client.h Allow callbacks to unref Operations
Keep a local (internal) shared_ptr whenever
user callbacks are run.  This allows user
callbacks to drop (reset()/dtor) Operations
or Monitors safely.

Ref must to captured before mutex is locked,
which is safe as the internal weak_ptr is
not changed after build() (despite being non-const)
2018-06-29 16:22:57 -07:00
Michael Davidsaver
61d43e498d client.h std::ostream printing 2018-04-10 16:19:03 -07:00
Michael Davidsaver
b5bf6a4ccd client: (shallow) copy into Monitor::root
Avoid exposing refs. from monitor queue
which might then be used after release().
Also allows users the possibility of caching
getSubField() until root.get() actually changes.
2018-02-21 11:19:21 -08:00
Michael Davidsaver
4dcc8bffe1 minor 2017-12-12 09:57:24 -06:00
Michael Davidsaver
6055dbb983 pvac user internal/external refs. 2017-11-22 14:14:05 -06:00
Michael Davidsaver
250826ffb9 add reftrack to pvac 2017-11-22 12:32:38 -06:00
Michael Davidsaver
5f96f5722e pvac: client monitor locking 2017-11-05 12:19:10 -06:00
Michael Davidsaver
25c7da43f2 pvac: better Requester names
pass through the client name (aka the channel name)
2017-09-06 13:49:46 -05:00
Michael Davidsaver
97e1cd4c69 pvac: add sync. monitor 2017-07-18 17:23:21 +02:00
Michael Davidsaver
95a750c4f9 pvaTestClient rename files 2017-07-14 16:56:47 +02:00