Commit Graph

230 Commits

Author SHA1 Message Date
Ralph Lange
a0a9ee4553 ca: Avoid possible race condition during cac shutdown.
While the cac dtor runs and waits for TCP circuit threads to exit,
new circuits could be opened by name resolution replies on existing
(still active) circuits.
Avoid this by setting a flag (lock being held) in the dtor, and
checking it in cac::transferChanToVirtCircuit.
2010-08-23 16:17:16 -04:00
Jeff Hill
7af0397d58 Examining the previous change I see that it will introduce a race condition when circuits are being created and destroyed at close to the same instant in time. See revision 11786 of cac.cpp which fixes mantis 334 if you are interested in what this code does. After running the regression tests, I pushed in a fix (which is removing above mentioned change and restoring the increment of iiuExistenceCount in cac::findOrCreateVirtCircuit. 2010-08-16 17:45:06 -06:00
Ralph Lange
2666e9d62b Bug fixes to CA client introduced by CA-over-TCP code. 2010-08-16 15:49:52 -05:00
Andrew Johnson
eda402cf66 Merged Ralph's ca-over-tcp branch.
Fixed some vxWorks compile errors, and made a number of edits
to the HTML in the CAref.html documentation.
2010-08-10 16:05:46 -05:00
Ralph Lange
be978d6499 Fixed issue "TCP Nameserver Connection Down Blocks All Callbacks" and cleaned up the SearchDest list / TCP circuit relation
* Pulled out tcpiiu::SearchDestTCP to have cac create the SearchDest independent from the TCP circuit
* Reorganized the relation between the SearchDestTCP and the TCP circuit:
  - SearchDest stays always on the cac list
  - TCP connection going down sets SearchDest inactive and SearchDestTCP's circuit member to NULL
  - Next seach request creates the new TCP circuit and sets SearchDestTCP's member, but leaves SearchDest inactive
  - Successful connect sets SearchDest active
* ReceiveThread releases the cac mutex before going to sleep in connect loop
2010-04-15 17:06:16 -04:00
Ralph Lange
23612a7afe Merged Codeathon 2008 changes (10292..10293 on cvs-trunk branch).
* Fixed conflicts until base compiles
 * COMPLETELY UNTESTED
2010-04-06 17:59:35 -04:00
Jeff Hill
8303cf053b improved VC creation failure exception diagnostics 2009-08-14 16:56:31 +00:00
Jeff Hill
b344841365 fixed the following issues with detection of flow control mode
o the flow control contig frame thresh should be based on max array size
o it appears that the wakeup mechanism for the send thread, who sends
the flow control on/off messages was broken
o looking at full buffers isnt a perfect detection scheme compared to
the simpler approach of just checking to see if bytes are pending in
the socket before calling recv
2009-08-13 23:29:02 +00:00
Jeff Hill
d7ae0fbce6 made lib more robust if server sends duplicate connect channel response 2009-07-14 22:39:41 +00:00
Andrew Johnson
039648824c Remove redundant macro definitions already defined in dbDefs.h
(M. Davidsaver)
2009-07-09 17:06:45 +00:00
Jeff Hill
9f6e7a5cd7 fix for mantis 334 2009-07-07 20:05:39 +00:00
Jeff Hill
77669d793d fixed situations where local host name cache is repatedly created and destroyed 2009-02-11 00:50:28 +00:00
Jeff Hill
de1b8a94ff fix for mantis 297 2007-08-23 17:46:28 +00:00
Jeff Hill
cde78f0b70 fixed a bug where the callback control gaurd was used from a different thread
than the one that created it
2007-01-11 21:45:58 +00:00
Jeff Hill
01f39d3e47 use new data conversion interface 2006-11-18 00:42:32 +00:00
Andrew Johnson
ecac0269dd Stop "warning: `id' defined but not used" messages from gcc -- use a char[]
instead of a char* and they go away!
2006-11-16 19:32:13 +00:00
Jeff Hill
0e4f45dac5 fixed mantis 260 2006-06-06 23:09:25 +00:00
Jeff Hill
ceb11f1fb4 fix for a potential race in ca_context_destroy 2006-02-13 16:33:46 +00:00
Jeff Hill
bd14b17c94 fixed send thread blocks trying to destroy the IIU because the
callback lock was taken without using a callback lock manager
2005-12-08 16:23:15 +00:00
Jeff Hill
363199adfa fixed bug occurring when interfacing with EPICS 3.11 2005-11-22 00:11:16 +00:00
Ralph Lange
892f8581b1 Fixed fixes for HP-UX. 2005-11-04 15:54:34 +00:00
Ralph Lange
22be6c91e1 Fixed warnings for HP-UX. 2005-11-04 14:20:12 +00:00
Jeff Hill
028ef0c788 dont pass time stamp to probe response notify 2005-10-31 22:20:26 +00:00
Jeff Hill
a113540e50 fixed R3.14.7 wont build for vxWorks 6.0 2005-04-13 17:28:14 +00:00
Jeff Hill
89d7953c90 hostName() renamed to getHostName() 2004-10-19 20:18:20 +00:00
Jeff Hill
1bb5a5d86b prevent ~cac from completing if iiu uninstall is still in progress 2004-10-08 15:34:12 +00:00
Jeff Hill
302cde41b0 removed CVS Id tokens as they cause never ending hassles when merging
in from branches
2004-10-04 18:55:40 +00:00
Jeff Hill
4154b61d46 fixed header name 2004-09-24 00:13:00 +00:00
Jeff Hill
7b7a07c667 fixes for bugs 133 and 134 in Mantis 2004-09-23 23:15:22 +00:00
Jeff Hill
1f791db248 eliminated very short window where channel could be installed
by udp thread while  iiu is being destroyed.
2004-09-02 19:47:31 +00:00
Jeff Hill
33ee0cba83 no need to maintain count of circuits insttalled when they are installed on a
doubly linked list
2004-06-17 23:30:32 +00:00
Jeff Hill
329172afc7 fixed logic surrounding subscription cancel
1) When channel is destroyed, but subscription not installed into a server
2) When subscription is destroyed, but has not been installed in server
2004-05-21 00:57:51 +00:00
Jeff Hill
57d488b7a0 supress disconnect callback when context is destroyed 2004-05-20 17:22:40 +00:00
Jeff Hill
563733cf3c changed to call new idAssignAdd func 2004-04-28 22:11:25 +00:00
Jeff Hill
4c606f43e7 fixed id string 2004-04-26 14:29:23 +00:00
Jeff Hill
a0e0cd7ef5 fixed channel uninstall message was not sent to server and other problems 2004-04-02 00:01:45 +00:00
Jeff Hill
16e182a89c new subscription member func preventing subscription from being installed twice 2004-03-22 18:38:29 +00:00
Jeff Hill
8459529f70 use global printf for debug stuff 2004-02-04 02:09:43 +00:00
Ralph Lange
429a135265 Bugfixes for compiling with -DDEBUG 2004-02-03 13:42:42 +00:00
Jeff Hill
9231d4c9b9 removed repeater confirm through cac 2004-02-03 03:04:42 +00:00
Jeff Hill
67937c1b74 fixed shutdown deadlock 2004-01-27 00:32:55 +00:00
Jeff Hill
bb05cea3c1 fixed solaris warnings 2004-01-23 19:55:11 +00:00
Jeff Hill
60a797048a many changes associated will disconnecting the channel but not disconnecting
the circuit
2004-01-15 01:42:49 +00:00
Jeff Hill
f04fa5fdf3 many changes associated will disconnecting the channel but not disconnecting the circuit 2004-01-09 00:42:15 +00:00
Jeff Hill
0712df904b keep circuit open with disconnected channels attached if the circuit
becomes unresponsive
2003-10-23 22:45:54 +00:00
Jeff Hill
245cf129ff fixed disconnect callback when channel known to be disconnected 2003-09-10 17:09:25 +00:00
Jeff Hill
d2ac73f3ae upgraded ipAddrToAscii API and improved shutdown procedures 2003-08-20 16:07:20 +00:00
Jeff Hill
78b532ee75 fixed race condition in virtual circuit shutdown sequence 2003-08-06 18:11:34 +00:00
Jeff Hill
4359938ed6 added virtual circuit free list and fixed race condition in virtual circuit shutdown sequence 2003-08-06 17:42:55 +00:00
Jeff Hill
773c12becc improved disconnect search interval 2003-07-03 15:07:51 +00:00