Michael Davidsaver
0a5f8b44db
doc
2018-10-18 15:18:00 -07:00
Michael Davidsaver
ac9ebc47ba
improper use of rand() w/o RAND_MAX
...
... with an extra dose of integer modulo thrown in.
2018-10-18 15:18:00 -07:00
Michael Davidsaver
9de8676a6f
pvlist debugging
2018-10-18 15:18:00 -07:00
Michael Davidsaver
8d2edc0bb8
Merge commit '731767b086e8146f31c1f9038568e3c852c609f7'
...
* commit '731767b086e8146f31c1f9038568e3c852c609f7':
SharedPV fix onFirstConnect() on monitor creation
SharedPV allow use of Channel::destroy() to trigger onLastDisconnect()
SharedPV defer onFirstConnect() to first getField/Put/Monitor
client.h add some exception guards
more SharedPV rpc state tracking
more UDP debugging
fix global string constants
fix SharedPV allow rpc() while close()'d
RPC troubleshooting
minor
SharedPV too many notifiedConn
client.h minor
2018-10-08 09:56:37 -07:00
Michael Davidsaver
731767b086
SharedPV fix onFirstConnect() on monitor creation
2018-10-08 07:10:13 -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
ed1bd1b962
SharedPV defer onFirstConnect() to first getField/Put/Monitor
2018-10-07 20:07:40 -07:00
Michael Davidsaver
165313d8f5
client.h add some exception guards
...
These are one shot operations anyway,
and allowing user exceptions to propagate
to core PVA isn't helpful.
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
f6eeeac649
more UDP debugging
2018-10-04 21:08:15 -07:00
Michael Davidsaver
48770f132f
fix global string constants
2018-10-04 21:08:15 -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
542d51a215
RPC troubleshooting
...
something funny is going on
2018-10-03 23:41:30 -07:00
Michael Davidsaver
abc1b448d5
minor
2018-10-03 23:41:30 -07:00
Michael Davidsaver
421d50e3ba
SharedPV too many notifiedConn
...
notifiedConn set more often than it should.
2018-10-03 18:36:32 -07:00
Michael Davidsaver
e67e00c968
client.h minor
2018-10-03 18:36:32 -07:00
Evan J. Smith
30f07f2fb6
Changing default request string to 'field()'
2018-10-02 20:29:02 -07:00
Michael Davidsaver
d4f3abf461
more descriptive UDP logging
2018-10-02 12:52:24 -07:00
Michael Davidsaver
2fec84461d
use of CMD_* instead of magic numbers
2018-10-02 12:52:24 -07:00
Michael Davidsaver
e6902ee41f
avoid UB in decodeAsIPv6Address()
...
Order of evaluation within an expression is
undefined behavior.
2018-10-02 12:52:24 -07:00
Michael Davidsaver
4e5aef3e42
SharedPV allow rpc() while close()'d
...
No reason to prevent this as RPCs need not use
the same type (Structure) as get/put/monitor.
2018-10-02 12:52:24 -07:00
Michael Davidsaver
4296c5e015
more SharedPV::close()
2018-09-27 13:56:13 -07:00
Michael Davidsaver
83b2105241
StaticProvider createChannel() avoid possible deadlock
...
connect() may invoke SharedPV onFirstConnect() callback.
2018-09-26 16:38:22 -07:00
Michael Davidsaver
7ed6f1315f
SharedPV::open() less work under lock
2018-09-26 10:31:33 -07:00
Michael Davidsaver
51bc630755
add pvac::ClientChannel::info()
2018-09-26 10:28:18 -07:00
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
f7f4822c08
pva/client.h separate Get and Put
...
Apparently some servers (pvDatabase) have different
behavior for ChannelGet::get() and ChannelPut::get() .
ClientChannel::get() now uses ChannelGet::get()
while ClientChannel::put() will automatically
do a ChannelPut::get() and pass the result to
the putBuilder callback.
2018-09-26 10:25:31 -07:00
Michael Davidsaver
31261cee24
client context less noise
2018-09-25 18:55:21 -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
a6eca51fa0
StaticProvider dtor close() with destroy=true
2018-09-21 11:35:57 -07:00
Michael Davidsaver
68f284f687
fix epicschat example
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
5f03fafba7
sharedstate minor doc
2018-09-21 11:35:57 -07:00
Michael Davidsaver
eab36d5123
minor
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
1f5c0eedcb
MonitorFIFO: open() handle compute() error internally
...
Introduce Error state when open() fails due to invalid
pvRequest mapping.
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
527cb3fe62
MonitorFIFO use PVRequestMapper
...
MonitorFIFO add config option dropEmptyUpdates
really distinct from ignoreRequestMask
2018-09-21 11:35:57 -07:00
Michael Davidsaver
281447c909
pvtools: force flush cout
...
Apparently windows CRT doesn't have a timed flush.
2018-09-17 10:37:36 -07:00
Andrew Johnson
28002fa6d7
Merge pull request #121 from epics-base/issue119
...
From Marty, fixes #119
2018-08-29 13:56:27 -05:00
Andrew Johnson
24b80151d5
Merge pull request #120 from epics-base/issue118
...
caProvider: Fixes issue #118 and adds more put/get equality tests for pvScalar
2018-08-13 10:22:08 -05:00
mrkraimer
bef689d8c8
add more DBRlongout tests
2018-08-13 09:12:57 -04:00
Michael Davidsaver
07af87fb0b
pva/client.h RPC give dummy valid bit mask
...
avoid the need for a NULL check.
2018-08-06 20:34:27 -07:00
mrkraimer
f210c81e45
fix issue 119
2018-08-02 05:55:22 -04:00
mrkraimer
9ec087c7ed
fix issue 118; add put/get equal tests for pvScalar
2018-08-01 09:40:09 -04:00
Michael Davidsaver
e52d31d0bf
Get2PutProxy pass along messages
2018-07-31 18:48:23 -07:00