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
aafb12f562
SharedPV separate close() and disconnect()
...
Previously, SharedPV::close() and StaticProvider::close()
would both disconnect all active clients, and put the SharedPV
in a closed (untyped) state.
SharedPV::close() remains unchanged.
StaticProvider::close() now only disconnects Channels created
through it, and leaves SharedPVs in the opened state.
2019-08-20 15:52:59 -07:00
Michael Davidsaver
a486f3d4c7
SharedPV::Handler better defaults
2018-10-18 17:52:56 -07:00
Michael Davidsaver
729f16f94e
SharedPV move internal names under detail::
2018-10-18 17:52:35 -07:00
Michael Davidsaver
9ca7487e29
SharedPV allow use of Channel::destroy() to trigger onLastDisconnect()
...
Add dead flag to catch double destroy() or use after destroy()
2018-10-07 20:07:40 -07:00
Michael Davidsaver
53b95dd336
more SharedPV rpc state tracking
...
handle re-open() with RPC
2018-10-06 17:55:57 -07:00
Michael Davidsaver
605c172d3c
fix SharedPV allow rpc() while close()'d
...
Don't call channelRPCConnect() again during open().
Turns out that a second channelRPCConnect() has
the effect of sending a reply with OK and NULL.
2018-10-04 07:31:01 -07:00
Michael Davidsaver
4296c5e015
more SharedPV::close()
2018-09-27 13:56:13 -07:00
Michael Davidsaver
7ed6f1315f
SharedPV::open() less work under lock
2018-09-26 10:31:33 -07:00
Michael Davidsaver
6b463d77e1
SharedPV ensure callback pairing
...
Ensure that onLastDisconnect() isn't called
unless onFirstConnect() is/has been called.
2018-09-21 11:35:57 -07:00
Michael Davidsaver
293dd3c2e9
sharedpv simplify logic
...
duh... always empty() after clear()
2018-09-21 11:35:57 -07:00
Michael Davidsaver
52e0bd09f8
sharedpv: defend against dying objects in SharedPV::close()
...
Likely when destroy=true
2018-09-21 11:35:57 -07:00
Michael Davidsaver
3bc1603f47
SharedPV.close() call onLastDisconnect()
...
ensure that onLastDisconnect() is called when
the channels list becomes empty (edge), and
not afterwards.
2018-09-21 11:35:57 -07:00
Michael Davidsaver
9ec0172520
sharedstate: close() from dtor
2018-09-21 11:35:57 -07:00
Michael Davidsaver
dd1e2b4048
sharedstate handle compute() error internally
2018-09-21 11:35:57 -07:00
Michael Davidsaver
643f7e47c8
Apply PVRequestMapper to shared state put/get
2018-09-21 11:35:57 -07:00
Michael Davidsaver
8b60d87e42
pvac fix MailboxHandler
...
This is why OVERRIDE is so important...
2018-07-31 18:48:23 -07:00
Michael Davidsaver
1a459d75d5
dllimport/export part 4
2018-07-06 16:00:33 -07:00
Michael Davidsaver
c61dad10c8
dllimport/export part 3
2018-07-06 15:33:40 -07:00
Michael Davidsaver
77b4934966
dllimport/export part 2
2018-07-06 14:59:29 -07:00
Michael Davidsaver
74c2ec1ec3
Add SharedPV
2018-06-29 16:55:27 -07:00