Commit Graph

11921 Commits

Author SHA1 Message Date
Jeff Hill
42ce1bd2db o reset pendingResponseStatus, reqPayloadNeedsByteSwap,
responseIsPending, and pValueRead whenever removing a
message from the stream
o eliminated error prone reuse of status variables
o dont allow service to postpone IO when no IO is pending against the target
o be extra careful not to do things twice when send blocked or IO postponed
2009-08-06 00:06:59 +00:00
Jeff Hill
7de356519d o added pValueRead gdd snart pointer
o payloadNeedsByteSwap renamed to reqPayloadNeedsByteSwap
o added issuePosponeWhenNonePendingWarning static func
2009-08-05 23:58:40 +00:00
Jeff Hill
ff5ca5e041 added ioIsPending func 2009-08-05 23:56:26 +00:00
Jeff Hill
d1bb71809b added S_cas_posponeWhenNonePending status 2009-08-05 23:56:01 +00:00
Jeff Hill
7a49a17d1b removed unused template instantiation 2009-08-04 23:32:32 +00:00
Jeff Hill
7cf77b40e6 updated the example to implement casPV::writeNotify implementing similar semantics to an IOC 2009-08-04 23:31:13 +00:00
Andrew Johnson
e387c06f59 STATIC_ASSERT(). 2009-08-04 19:51:19 +00:00
Andrew Johnson
c035566d7d Use compile-time assertions, from Micheal Davidsaver. 2009-08-04 19:10:30 +00:00
Andrew Johnson
57e5406684 Added STATIC_ASSERT macro.
Removed assert() definition for pre-ANSI C compilers.
2009-08-04 19:07:07 +00:00
Jeff Hill
b4948b4ff6 fixed missing space in command line help string 2009-08-04 17:50:56 +00:00
Andrew Johnson
15f6b8c682 Update dbDefs.h changes. 2009-08-04 17:11:02 +00:00
Andrew Johnson
4868904839 Added CONTAINER macro, from Micheal Davidsaver (BNL). 2009-08-04 16:31:06 +00:00
Andrew Johnson
1a2fa1bc86 Some cleanup, mostly spacing. 2009-08-03 22:22:45 +00:00
Jeff Hill
e3a61ce4e4 fix for mantis 358 2009-08-03 22:09:52 +00:00
Andrew Johnson
efdee3c31a Escaping doesn't work on all Win32 platform combinations.
Removed -e option again.
2009-08-03 22:03:33 +00:00
Andrew Johnson
ee44663d89 errSymFind() removal. 2009-08-03 17:14:25 +00:00
Andrew Johnson
90db5a4ab0 Deleted test code which was moved to libCom/test some time ago. 2009-08-03 17:13:04 +00:00
Jeff Hill
72dbaa8a0f auto-adjust iterations for payload size 2009-07-31 23:26:16 +00:00
Jeff Hill
458689a252 fixed formating 2009-07-31 22:12:32 +00:00
Jeff Hill
0daf347ef3 fixed incorrect Mbps calc based on rounded payload size 2009-07-31 22:01:53 +00:00
Jeff Hill
e32d8d77dc fixed gnu compiler issues 2009-07-31 21:43:03 +00:00
Jeff Hill
ffe7823c22 report send and recv Mbps independently to better understand fullduplex ethernet bw 2009-07-31 21:23:26 +00:00
Jeff Hill
913f724ebf fix for mantis 357 2009-07-31 19:47:46 +00:00
Andrew Johnson
4e5fa9b6b3 Reverted patch that added architecture-specific compiler flags,
Micheal Abbott didn't like it.
2009-07-31 17:38:27 +00:00
Andrew Johnson
a6b0ffebca Fixed build issue. 2009-07-31 16:46:12 +00:00
Jeff Hill
7246366222 fixed gnu warning 2009-07-31 15:52:32 +00:00
Jeff Hill
191668023b independent of whether receive bytes are pending or not. This improves
event latency, and allows events to flow if we are blocked due to the
service postponing an IO operation. This was a bug fix.

o call processMessage directly from the IO completion callback
that restarts when in an IO postponement state. This makes the logic easier
to understand and maintain, but isnt a functional change
o call processMessage directly from the receive callback.
This makes the logic easier to understand and maintain, but isnt
a functional change
o call processMessage directly from the send callback.
This makes the logic easier to understand and maintain, but isnt
a functional change
o removed the eventFlush function
2009-07-31 00:47:56 +00:00
Jeff Hill
7a23b74a76 o when processing subscription update events, always activate the send
independent of whether receive bytes are pending or not. This improves
event latency, and allows events to flow if we are blocked due to the
service postponing an IO operation. This was a bug fix.
o when finishing processing input activate a send if more than one half
of the TCP buffering would be used. In the past the send was not activated
until either the send buffer was full or the receive buffer (including any
bytes waiting in the socket) was empty. This could cause latency and
performance issues because send receive piplining would not occur if they
have very large buffers due to a large EPICS_CA_MAX_ARRAY_SIZE.
o always activate a send if we enter a service is postponing IO state. Users
would probably prefer to receive past responses and not wait until the
postponed IO initiates.

o casStrmClient::inBufBytesAvailable renamed to
casStrmClient:: inBufBytesPending reflecting the fact that we nlonger use
a socket ioctl to check how many bytes are pending in the sockets
input queue
o casStrmClient::outBufBytesPresent renamed to
casStrmClient::outBufBytesPending for consistency with inBufBytesPending
o removed the eventFlush function
o removed sendBlocked flag
o call processMessage directly from the IO completion callback
that restarts when in an IO postponement state. This makes the logic easier
to understand and maintain, but isnt a functional change
o call processMessage directly from the receive callback.
This makes the logic easier to understand and maintain, but isnt
a functional change
o call processMessage directly from the send callback.
This makes the logic easier to understand and maintain, but isnt
a functional change
2009-07-31 00:41:34 +00:00
Jeff Hill
511d818d18 o removed sendBlocked flag
o removed processInput function
o removed eventFlush function
o made casStreamIOWakeup and casStreamEvWakeup friends
2009-07-31 00:00:42 +00:00
Jeff Hill
f8565139c2 o removed sendBlocked flag
o removed processInput function
o removed eventFlush function
o made casDGEvWakeup, casDGIOWakeup, and
casStreamEvWakeup friends
2009-07-30 23:54:18 +00:00
Jeff Hill
30a02b365f incomingBytesPresent renamed to inCircuitBytesPending but this
function isnt currently used
2009-07-30 23:51:48 +00:00
Jeff Hill
b4bc931c72 incomingBytesPresent renamed to dgInBytesPending, but this function
is not currently used
2009-07-30 23:50:45 +00:00
Jeff Hill
e5d3815280 o removed bytesAvailable member function from inBuf because
we nolonger check the bytes in the socket  with an ioctl
o removed incomingBytesPresent virtual function from inBufClient interface
because we nolonger check the bytes in the socket  with an ioctl
2009-07-30 23:48:43 +00:00
Jeff Hill
ebd65e6e34 added an assert test 2009-07-30 23:45:14 +00:00
Jeff Hill
8c45eb4a19 o casStrmClient::inBufBytesAvailable renamed to
casStrmClient:: inBufBytesPending reflecting the fact that we nlonger use
a socket ioctl to check how many bytes are pending in the sockets
input queue
o  casStrmClient::outBufBytesPresent renamed to
casStrmClient::outBufBytesPending for consistency with inBufBytesPending
2009-07-30 23:43:21 +00:00
Jeff Hill
e1bb171f44 o casStrmClient::inBufBytesAvailable renamed to
casStrmClient:: inBufBytesPending reflecting the fact that we nlonger use
a socket ioctl to check how many bytes are pending in the sockets
input queue
o  casStrmClient::outBufBytesPresent renamed to
casStrmClient::outBufBytesPending for consistency with inBufBytesPending
o in casStrmClient :: processMsg () I forced status to S_cas_success at a couple
of loop exits. There is probably not a bug because the variable is initialized to
this value and the loop termintaes if the status isnt this value nevertheless
the corrected code is more robust to future changes.
o fixed a benign issue in casStrmClient :: processMsg () where if the user
sends a message to big for EPICS_MAX_ARRAY_SIZE and there is
currently no room in the output buffer then the user will not receive
a diagnostic message. With the patch the message will be sent later once
there is space.
2009-07-30 23:42:15 +00:00
Jeff Hill
656c2462d3 o casDGClient::inBufBytesAvailable renamed to
casDGClient :: inBufBytesPending reflecting the fact that we nlonger use
a socket ioctl to check how many bytes are pending in the sockets
input queue
o  casDGClient::outBufBytesPresent renamed to
casDGClient::outBufBytesPending for consistency with inBufBytesPending
2009-07-30 23:31:32 +00:00
Jeff Hill
f4ec20c8f0 casDGClient::inBufBytesAvailable renamed to
casDGClient :: inBufBytesPending reflecting the fact that we nlonger use
a socket ioctl to check how many bytes are pending in the sockets
input queue
2009-07-30 23:29:43 +00:00
Jeff Hill
72e1dba496 o no need to allocate or initialize one more fd_set than is used
(not a bug but messy)
o added optimization where we only check as many registered fd's
on the list as select tells us are active in its status
o added code to clear all of the  fd_set if select returns an error
(in practice this would not cause a bug other than some extra activity
that would immediately self terminate when it clear the flag in the fd_set,
and also we dont see the error message printed when select returns an error)
2009-07-30 23:21:19 +00:00
Jeff Hill
001b947702 added more excas options 2009-07-30 23:09:54 +00:00
Jeff Hill
c0d4317ade fixed broken test 2009-07-30 23:08:34 +00:00
Jeff Hill
290ec3e22c adjustable asyn delay, adjustable max simult io, added variables 2009-07-30 22:53:51 +00:00
Jeff Hill
d6b887b363 adjustable asyn delay 2009-07-30 22:51:03 +00:00
W. Eric Norum
fbebea304b Adapt to older versions of RTEMS. 2009-07-29 20:58:37 +00:00
Janet B. Anderson
dd1d2c10bd Part 2 for Fix of echo problem. 2009-07-29 20:53:02 +00:00
Janet B. Anderson
d3e3137265 Fixed echo problem when using RULES.Db when T_A is not defined. 2009-07-29 19:06:32 +00:00
Jeff Hill
d764e7d4df added "using namespace std" 2009-07-29 15:10:24 +00:00
W. Eric Norum
49ddec4294 Add cvtFastPerform to test harness. 2009-07-29 14:29:54 +00:00
Andrew Johnson
ce778819bd Update comment; can't deprecate a published API! 2009-07-28 21:11:02 +00:00
Andrew Johnson
d5bffdb13d Can't portably pass filesystem paths as command-line macros to C.
Generate a header file instead and include that.
2009-07-28 21:08:37 +00:00