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 Kraimer and GitHub
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