Commit Graph

63 Commits

Author SHA1 Message Date
Michael Davidsaver
7a523dd948 drop unused NOMINMAX 2018-05-18 15:20:26 -07:00
Michael Davidsaver
bab32c332a codec: notes on thread self dtor 2018-04-04 18:40:46 -07:00
Michael Davidsaver
7f5eb1de4d BlockingClientTCPTransportCodec collapse closedNotifyClients() into internalClose() 2018-04-04 18:31:12 -07:00
Michael Davidsaver
0eabf10005 codec: drop unused _shutdownEvent
using epicsThread::exitWait() instead
2018-04-04 18:31:12 -07:00
Michael Davidsaver
fe5780521b Context::getSecurityPlugins() no return of non-const ref.
Return of map as non-const ref. allows callers to modify.
Probably unintended.
2018-04-04 09:09:43 -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
18758fa497 throw new doesn't work
javaism...
2018-02-13 18:07:58 -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
e8347f17b4 minor 2018-02-07 20:16:38 -08:00
Michael Davidsaver
5a86835a6f add ref-counter for Transport ABC 2018-02-01 11:17:56 -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
9daf7a0cad remove unnecessary includes 2018-01-31 11:51:13 -08:00
Andrew Johnson
fa46935d35 Clean up compiler warnings 2018-01-04 17:52:36 -06:00
Michael Davidsaver
903d117485 pvAccessLog() add EPICS_PRINTF_STYLE()
and fixup incorrect specifiers
2017-12-28 10:49:54 -06:00
Michael Davidsaver
ba3b777978 missed one
cf 2f0bb7d448
2017-11-16 11:18:13 -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
Michael Davidsaver
576b241faa consolidate TransportClient and ChannelImpl as ClientChannelImpl 2017-11-06 15:51:43 -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
8d5c27143b pvasr list client channels 2017-11-05 17:11:28 -06:00
Michael Davidsaver
5e900b1f11 remove super abstract authNZInitialize(void*)
with separate client and server calls.

Still dynamic_cast ugliness as Transport and Codec
hierarchies don't have a common root.
2017-11-05 16:41:59 -06:00
Michael Davidsaver
47332fdf90 server status reporting via iocsh 2017-11-05 15:59:01 -06:00
Michael Davidsaver
98df225583 insturment with reftrack 2017-08-30 11:17:03 -05:00
Michael Davidsaver
ad5d23f4c8 minor vx fix 2017-07-17 17:38:51 +02:00
Michael Davidsaver
0c02625aa5 servercontext wait for transport worker threads to finish
doing this through Transport::close()
causes deadlock in client code due to locking.
So make this an extra step.
2017-06-26 14:16:41 +02:00
Michael Davidsaver
3dca3dc38f ServerContext clear timer queue 2017-06-22 13:51:38 +02:00
Michael Davidsaver
11cc395baf more BlockingTCPTransportCodec::close() wait for threads
can't wait here as locks are held
2017-06-02 12:30:40 +02:00
Michael Davidsaver
3ad27665e8 BlockingTCPTransportCodec::close() wait for threads 2017-05-31 15:47:46 +02:00
Michael Davidsaver
3283bed413 drop PVA_ALIGNMENT constant
This will forevermore be 1, so no
reason to incur complexity of testing this.

size % PVA_ALIGNMENT -> 0
alignBuffer(PVA_ALIGNMENT) -> no-op
alignedValue(val, PVA_ALIGNMENT) -> val
2017-05-24 17:20:17 -04:00
Michael Davidsaver
87dca19708 codec: avoid indirection when accessing buffers
avoid some indirection to make this code easier to follow.
move buffer lower limit to base class.
2017-05-24 17:20:17 -04:00
Michael Davidsaver
b05e7699b5 remove no-op lock/unlock from Lock sub-classes 2017-05-24 17:20:17 -04:00
Michael Davidsaver
2cc1be2dee codec.h: minor 2017-05-24 17:20:17 -04:00
Michael Davidsaver
ab4f0b7e3a collapse BlockingSocketAbstractCodec -> BlockingTCPTransportCodec 2017-05-24 17:20:17 -04:00
Michael Davidsaver
e47124aa30 collapse BlockingAbstractCodec into BlockingSocketAbstractCodec 2017-05-24 17:20:17 -04:00
Andrew Johnson
9a8644033d Prevent redefinition of NOMINMAX
While this protection is not strictly necessary here, if someone
does a cut-and-paste into a header file it should be included.
2016-04-06 15:22:11 -05:00
Andrew Johnson
e28fd6129e Remove need to undef epicsExportSharedSymbols
This approach works OK, but makes it much harder to find files
that have mistakes in them since they can cause other functions
to get the wrong import/export setting.
2016-04-06 10:59:23 -05:00
Matej Sekoranja
5279d247ca general indent beautification 2016-03-10 23:36:16 +01:00
Matej Sekoranja
9b6fdaaaff rtems: reference to 'Thread' is ambiguous 2016-03-03 00:29:54 +01:00
Matej Sekoranja
125822d18f one instance of responseHandler per context 2015-12-17 09:12:33 +01:00
Michael Davidsaver
b9dd9e8e6c getRemoteName()
Cache the TCP peer address as a string and pass it to createChannel().
2015-12-14 17:04:57 -05:00
Michael Davidsaver
4a1bfff40f Remove clearSendQueue
Use BreakTransport exception instead
2015-12-14 16:59:55 -05:00
Michael Davidsaver
730d30fe54 AbstractCodec use fair_queue 2015-12-14 16:59:55 -05:00
Michael Davidsaver
6254525cba use epicsThread and Thread::Config
Catches errant c++ exceptions and is joinable
2015-12-14 16:59:47 -05:00
Michael Davidsaver
2e64b1b785 Message for unhandled exceptions in UDP message processing 2015-11-23 16:41:31 -05:00
Michael Davidsaver
c59715f687 cleanup commented code blocks 2015-11-23 16:41:31 -05:00
Matej Sekoranja
7eb0087d64 fixed bad tx performance 2015-02-04 20:08:25 +01:00
Matej Sekoranja
d3fb30d55d removed annoying warning when client disconnects while server is processing a send message 2015-01-07 13:48:44 +01:00
Matej Sekoranja
228d7fe279 queue.take possible race, send thread does not wait for read anymore 2015-01-07 12:58:28 +01:00