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