Commit Graph

505 Commits

Author SHA1 Message Date
mrkraimer cb21eb4f1e prevent CAChannel::disconnectChannel() from calling ca_clear_channel twice
This was causing a crash when exiting
2018-01-30 05:08:43 -05:00
mrkraimer 4d2e682a95 make changes suggested by andrew that remove warning messages 2018-01-29 10:19:56 -05:00
mrkraimer d3ce104c33 fix issue #77 2017-12-23 06:35:23 -05:00
Michael Davidsaver c4fe7150c9 caChannel: no need for weak pvRequest
Operations should keep their pvRequest alive.
The only danger of ref. loops with pvRequest
is via PVUnion, which is outside the scope
of pvAccessCPP.
2017-12-19 11:38:26 -06:00
Michael Davidsaver 457d03508d reduce noise 2017-12-12 09:57:24 -06:00
Michael Davidsaver 4dcc8bffe1 minor 2017-12-12 09:57:24 -06:00
Andrew Johnson 65b0ac1a32 Fixes needed for older VxWorks GCC 2017-11-29 16:44:19 -06:00
Michael Davidsaver 0161799c93 must zero osiSockAddr prior to use!
RTEMS depends on this or eg. bind()
will fail because comparison with
list of interface addresses is done
with memcmp()!
2017-11-28 17:54:25 -06:00
Michael Davidsaver bc0892a1ad workaround for older gcc 2017-11-28 17:54:25 -06:00
Michael Davidsaver d4eb31e729 silence warning
the 'done' flag avoids actual use of uninitialized 'size'.
2017-11-28 17:54:25 -06:00
Andrew Johnson e61d10200e Merge pull request #74 from mrkraimer/master
This fixes the problems raised in issue #71
2017-11-28 09:04:47 -06:00
Michael Davidsaver d1cbb0abd5 pvac: ensure that listeners are done in ClientChannel
ensure no concurrent callback in progress
when removing listeners.
2017-11-22 14:20:26 -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
mrkraimer 46b19866c7 Merge https://github.com/epics-base/pvAccessCPP 2017-11-20 08:46:58 -05:00
mrkraimer e4182d0b00 fix incorrect logic 2017-11-18 07:05:34 -05:00
mrkraimer 32d0ece858 fix all problems raised in issue #71 2017-11-17 15:18:21 -05:00
Michael Davidsaver 3f51c74ba1 fix mingw build error 2017-11-16 18:47:39 -06:00
Michael Davidsaver cf7827ceab quiet mingw include order warning
#warning Please include winsock2.h before windows.h
2017-11-16 18:45:44 -06:00
Michael Davidsaver e626ca0aaf client const-ify where possible 2017-11-16 17:38:11 -06:00
Michael Davidsaver f45de1de68 client minor locking 2017-11-16 17:38:11 -06:00
Michael Davidsaver 8e846b02bc tighten up validation 2017-11-16 17:38:11 -06:00
Michael Davidsaver cc9c666731 Improve client pvRequest option parsing
Give some notice of parse errors
2017-11-16 17:38:11 -06:00
Michael Davidsaver 00e01d5211 tighten up client operation send state handling 2017-11-16 17:03:10 -06:00
Michael Davidsaver 1d56ee7283 pva client ignore CMD_DESTROY_REQUEST reply.
Presently CMD_DESTROY_REQUEST and CMD_CANCEL_REQUEST aren't acknowledged.
This allows ambiguity in when the request ioid goes out of scope.

Currently, the client forgets about an ioid as soon as the destroy request is sent.
So any in-flight response will be erroneously flagged as "Undecipherable message".

Similarly, a cancel request can cross paths with a reply.
This creates confusion in the event the client starts a new
request immediately after canceling the first.

Let's build some forward compatibility by ignoring replies to
cancel and destroy requests.
2017-11-16 17:03:10 -06:00
Michael Davidsaver b3fcffb18e avoid magic number 2017-11-16 14:56:59 -06:00
Michael Davidsaver 6f39f02f3a more client locking violations
As with #72 more use of m_pendingRequest w/o locking
2017-11-16 14:56:48 -06:00
Michael Davidsaver ba3b777978 missed one
cf 2f0bb7d448
2017-11-16 11:18:13 -06:00
Michael Davidsaver 5bcbc0d717 Incorrect locking in client monitor 2017-11-15 20:02:25 -06:00
Michael Davidsaver 2f0bb7d448 "Not-a-first segmented message" is a critical error
Let's try to scare users into reporting it more promptly.
2017-11-15 19:38:26 -06:00
mrkraimer 784c6665a6 make pvRequest weak_pointer for get, put, and monitor 2017-11-14 09:11:27 -05:00
mrkraimer 6cd7de069a remove lastRequest messages; in activate only make callback if connected 2017-11-13 05:53:24 -05:00
Michael Davidsaver 3b565d0c56 server GetField ensure no duplicate reply 2017-11-06 16:48:34 -06:00
Michael Davidsaver 84a0729bcf minor 2017-11-06 16:27:52 -06:00
Michael Davidsaver c469d49ecb server: keep most recent GetFieldRequester alive 2017-11-06 16:27:43 -06:00
Michael Davidsaver 0ec4e16373 skip unnecessary static_pointer_casts 2017-11-06 16:12:13 -06:00
Michael Davidsaver 576b241faa consolidate TransportClient and ChannelImpl as ClientChannelImpl 2017-11-06 15:51:43 -06:00
Michael Davidsaver 7118e34222 merge DataResponse into ResponseRequest
DataResponse is only sub-"interface"/class of ResponseRequest.
2017-11-06 15:26:05 -06:00
Michael Davidsaver 3154e3431e consolidate SubscriptionRequest with BaseRequestImpl
"interface" with a single implementation.
combine and de-virtualize
2017-11-06 15:22:09 -06:00
Michael Davidsaver 073c77b1ef consolidate ServerChannel and ServerChannelImpl
"interface" with a single implementation.
combine and de-virtualize.
2017-11-06 15:14:41 -06:00
Michael Davidsaver 46df4c07ca cleanup ServerChannelImpl
const-ify and remove descriptive comments
2017-11-06 14:58:15 -06:00
Michael Davidsaver 5f78671b36 compose ServerResponseHandler 2017-11-06 14:47:10 -06:00
Michael Davidsaver 1d7f15de25 combine AbstractResponseHandler and ResponseHandler 2017-11-06 14:27:46 -06:00
Michael Davidsaver 3071a06000 cleanup server response handlers
avoid unnecessary dynamic_cast and ref. counter activity
2017-11-06 14:07:02 -06:00
Michael Davidsaver aaef110507 eliminate ChannelHostingTransport
an "interface" used once.  Drop it and de-virtualize.
2017-11-06 13:41:58 -06:00
Michael Davidsaver dcb74b781d be explicit about epics::auto_ptr 2017-11-06 12:46:13 -06:00
Michael Davidsaver 9bf03fbfbe no more returning auto_ptr 2017-11-06 12:44:36 -06:00
Michael Davidsaver 0fde239f23 std::auto_ptr -> epics::auto_ptr 2017-11-06 12:37:42 -06:00
Michael Davidsaver f91b593aea no need to dllexport inline class w/o virtuals 2017-11-06 11:02:08 -06:00
Michael Davidsaver 161280220e avoid std::min 2017-11-06 10:57:09 -06:00