From 50be068a02c63fbd7e902ff7d986f878c34542e6 Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Thu, 6 Apr 1995 16:47:41 +0000 Subject: [PATCH] free outstanding get/put cb requests when the IOC disconnects --- src/ca/iocinf.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/ca/iocinf.c b/src/ca/iocinf.c index 6e2e08992..608c9308d 100644 --- a/src/ca/iocinf.c +++ b/src/ca/iocinf.c @@ -585,7 +585,7 @@ void notify_ca_repeater() * and we are just porting there for 3.12 so * we will use the new protocol for 3.12 */ -# ifdef SOLARIS +# ifdef SOLARIS len = sizeof(msg); # else /* SOLARIS */ len = 0; @@ -733,11 +733,6 @@ LOCAL void cac_tcp_send_msg_piiu(struct ioc_in_use *piiu) * return if nothing to send */ if(sendCnt == 0){ -# ifdef DEBUG - if (piiu->sendPending) { - printf ("-Unblocked-\n"); - } -# endif /* DEBUG */ piiu->sendPending = FALSE; piiu->send_needed = FALSE; UNLOCK; @@ -873,9 +868,7 @@ void ca_process_input_queue() UNLOCK; -#if 0 cac_flush_internal(); -#endif } @@ -1233,6 +1226,16 @@ void close_ioc (struct ioc_in_use *piiu) ca_signal (ECA_DISCONN,piiu->host_name_str); } + /* + * clear outstanding get call backs + */ + caIOBlockListFree (&pend_read_list, chix, TRUE, ECA_DISCONN); + + /* + * clear outstanding put call backs + */ + caIOBlockListFree (&pend_write_list, chix, TRUE, ECA_DISCONN); + /* * call their connection handler as required */