Commit Graph
566 Commits
Author SHA1 Message Date
Michael Davidsaver a3d820cf57 DefaultBeaconServerStatusProvider avoid unnecessary ServerContext ref
breaks loop ServerContext -> beaconEmitter -> BSSP -> ServerContext
2018-04-02 12:39:46 -07:00
Michael Davidsaver abed887d87 beaconEmitter: avoid ref. loop with Timer
emitter schedules itself and timer holds a ref.
while queued.  So the emitter isn't destroyed
until the timer expires.
2018-04-02 12:38:42 -07:00
Michael Davidsaver d6a29a2a86 beaconEmitter const-ify data members 2018-04-02 11:53:00 -07:00
Michael Davidsaver 28cec947ae serverContext: collapse destroyAllTransports() into shutdown() 2018-04-02 11:47:20 -07:00
Michael Davidsaver df14a19ae0 codec: eliminate internalPostClose()
no reason to distinguish before and after
send worker break is _requested_ (won't
actually be stopped).
2018-04-02 11:30:19 -07:00
Michael Davidsaver 434a43dfe1 codec: less force-ful shutdown
eliminate unused 'force' argument.
2018-04-02 10:46:57 -07:00
Michael Davidsaver da85d39c0c codec: const-ify socket
Avoid possible data race of changing _channel
before worker threads are joined.
Was just using this as a boolean flag for a method
which is already guarded in BlockingTCPTransportCodec::close()
from being called twice.
2018-04-02 10:41:30 -07:00
Michael Davidsaver 38965bb847 codec: collapse internalDestroy() into internalClose() 2018-04-02 10:24:35 -07:00
Michael Davidsaver 6c2d20353a minor, avoid extra string copys 2018-03-28 13:59:33 -07:00
Michael Davidsaver a6d86d2a3c hide MockTransportSendControl 2018-03-28 13:49:21 -07:00
Michael Davidsaver 735dc22e2d collapse SimpleChannelSearchManagerImpl into ChannelSearchManager
Virtual base with only one sub-class.  So avoid some unnecessary
indirection.
2018-03-28 13:37:42 -07:00
Michael Davidsaver 1a100a0955 client fix init order leading to *NULL
Avoid a race between the main thread alloc of SimpleChannelSearchManagerImpl
the the UDP socket worker trying to use the same.

Split allocation and initialization of search manager
around socket creation and worker start.

Also in-line initializeUDPTransport() to only call site.
2018-03-28 13:21:46 -07:00
Michael Davidsaver aec1c7c9d7 client search: cleanup context pointer handling 2018-03-28 11:25:54 -07:00
Michael Davidsaver 8d363f9fe7 server responseHandlers annotate OVERRIDE FINAL 2018-03-22 14:03:57 -07:00
Michael Davidsaver 3b53e81f2f avoid destroy() w/ lock 2018-03-22 13:39:04 -07:00
Michael Davidsaver e9cc8298a6 server monitor cleanup
ServerMonitorRequesterImpl::getChannelMonitor()
seems like no possibility of deadlock atm.
2018-03-22 13:34:55 -07:00
Michael Davidsaver 4fcbdff580 missing includes 2018-03-19 15:36:21 -07:00
Michael Davidsaver acab4cd408 fix potential *NULL from Get2PutProxy 2018-03-08 11:42:56 -05:00
Michael Davidsaver ef74bdeccd Merge remote-tracking branch 'origin/master'
* origin/master:
  implement suggestions from Andrew
  termination and error handling changes.
2018-02-21 11:20:20 -08:00
Michael Davidsaver 909cef9200 minor 2018-02-21 11:19:58 -08: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 79ada524fa getRequester() may return NULL 2018-02-20 11:28:32 -08:00
Marty KraimerandGitHub fe52a1673e Merge pull request #88 from mrkraimer/master
termination and error handling changes.
2018-02-16 05:29:43 -05:00
mrkraimer 5b32b4e072 implement suggestions from Andrew 2018-02-15 15:57:00 -05:00
Michael Davidsaver 685490fc1a no NDEBUG
Apparently the Base makefiles never have defined NDEBUG.
So no point for this conditional.
2018-02-14 08:55:01 -08:00
Michael Davidsaver 18758fa497 throw new doesn't work
javaism...
2018-02-13 18:07:58 -08:00
Michael Davidsaver c6b1d3b738 fairQueue: logic error allows perpetual clear()
oops, the argument isn't cleared in all
cases, and can be swapped in.
As in the case of clear().
2018-02-13 17:58:56 -08:00
Michael Davidsaver a266777d82 destroyAllChannels() swap out channels list
avoid possible modifications while iterating.
2018-02-13 17:58:56 -08:00
Michael Davidsaver d12a6cad9b Move PVACCESS_DEFAULT_PROVIDER def out of header 2018-02-08 11:32:18 -08:00
Michael Davidsaver b397e3e928 Revert "convert global string "constants" to macros"
This reverts commit 49b2507985.
2018-02-08 11:00:40 -08:00
mrkraimer 952c482d68 merge with latest from epics-base 2018-02-08 07:58:52 -05:00
Michael Davidsaver 5c1b638db5 avoid spurious Leak warning
copying an array just to see if it is empty
isn't so efficient.
2018-02-07 20:17:40 -08:00
Michael Davidsaver e8347f17b4 minor 2018-02-07 20:16:38 -08:00
Michael Davidsaver 24ffccf90d better TransportRegistry::remove()
now with the same complexity as the original...
2018-02-06 18:20:33 -08:00
Michael Davidsaver 40868b7b8b cleanup 2018-02-06 18:15:13 -08:00
Michael Davidsaver c92045620a oops 2018-02-06 16:54:54 -08:00
mrkraimer fcaeb414a0 termination and error handling changes.
epicsAtExit is no longer used to call ca_context_destroy.
It is now called from the destructor for CAChannelProvider.

Several changes were made for handling errors.
2018-02-06 10:20:29 -05:00
Michael Davidsaver 5f9508a3b1 demote getTransport() fialure message to debug
the connect() will be retried, so this isn't fatal.
2018-02-01 20:04:03 -08:00
Michael Davidsaver d41d15d59e drop some dead code 2018-02-01 19:51:32 -08:00
Michael Davidsaver 606669c62b less verbose error message when ::connect() fails 2018-02-01 19:51:15 -08:00
Michael Davidsaver 9b828852c0 Transport::getRemoteAddress() return reference
make it clear that result is always !NULL
2018-02-01 19:09:44 -08:00
Michael Davidsaver f1defe4e9f mark NamedLockPattern as deprecated
just too hard to use (exception) safely
2018-02-01 19:00:38 -08:00
Michael Davidsaver 58f996fd98 update transportRegistry
avoid leaks of SOCKET and leaving mutex locked
when exceptions are thrown.
2018-02-01 18:54:25 -08:00
Michael Davidsaver 5a86835a6f add ref-counter for Transport ABC 2018-02-01 11:17:56 -08:00
Michael Davidsaver a039b48c1f caProvider: remove deprecation warnings
make no-op destroy() private to prevent
accidental usage.
2018-01-31 12:49:10 -08:00
Michael Davidsaver d33356ced6 drop deprecated 2018-01-31 12:48:59 -08:00
Michael Davidsaver 49b2507985 convert global string "constants" to macros
avoid instantiating in all compilation units.
2018-01-31 12:48:25 -08:00
Michael Davidsaver 3bb2f25bed Merge remote-tracking branch 'origin/master'
* origin/master:
  prevent CAChannel::disconnectChannel() from calling ca_clear_channel twice This was causing a crash when exiting
  Revert "When caProvider is destroyed make sure all channels are cleared"
  make changes suggested by andrew that remove warning messages
  Clean up compiler warnings
  fix issue #77
2018-01-31 11:51:57 -08:00
Michael Davidsaver abce3faa86 fix 'pva' provider registration during static linking
Move 'pva' provider registration into registry singleton
construction to ensure that it is done.
2018-01-31 11:51:13 -08:00
Michael Davidsaver c6b1786008 minor doc 2018-01-31 11:51:13 -08:00