From 6c2303a958e5d9e35dc9fb1431f27504e87286cd Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Thu, 9 Aug 2001 00:54:08 +0000 Subject: [PATCH] added try catch block to pend io --- src/ca/access.cpp | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/ca/access.cpp b/src/ca/access.cpp index 7b48b1a6e..99e2ea030 100644 --- a/src/ca/access.cpp +++ b/src/ca/access.cpp @@ -623,7 +623,7 @@ extern "C" int epicsShareAPI ca_pend ( ca_real timeout, int early ) /* * ca_pend_event () */ -extern "C" int epicsShareAPI ca_pend_event (ca_real timeout) +extern "C" int epicsShareAPI ca_pend_event ( ca_real timeout ) { oldCAC *pcac; int status = fetchClientContext ( &pcac ); @@ -649,7 +649,7 @@ extern "C" int epicsShareAPI ca_pend_event (ca_real timeout) /* * ca_pend_io () */ -extern "C" int epicsShareAPI ca_pend_io (ca_real timeout) +extern "C" int epicsShareAPI ca_pend_io ( ca_real timeout ) { oldCAC *pcac; int status = fetchClientContext ( &pcac ); @@ -657,13 +657,18 @@ extern "C" int epicsShareAPI ca_pend_io (ca_real timeout) return status; } - // preserve past odd ball behavior of waiting forever when - // the delay is zero - if ( timeout == 0.0 ) { - return pcac->pendIO ( DBL_MAX ); - } + try { + // preserve past odd ball behavior of waiting forever when + // the delay is zero + if ( timeout == 0.0 ) { + return pcac->pendIO ( DBL_MAX ); + } - return pcac->pendIO ( timeout ); + return pcac->pendIO ( timeout ); + } + catch ( ... ) { + return ECA_INTERNAL; + } } /*