diff --git a/src/ca/cac.cpp b/src/ca/cac.cpp index 3c0c684bd..a66b82dd1 100644 --- a/src/ca/cac.cpp +++ b/src/ca/cac.cpp @@ -1036,7 +1036,12 @@ void cac::ioCancel ( nciu &chan, const cacChannel::ioid &id ) if ( pSubscr ) { chan.getPIIU()->subscriptionCancelRequest ( chan, *pSubscr ); } - signalNeeded = this->blockForIOCallbackCompletion ( id ); + if ( pRecvProcessThread->isCurrentThread() ) { + signalNeeded = false; + } + else { + signalNeeded = this->blockForIOCallbackCompletion ( id ); + } pmiu->destroy ( *this ); } }