From 67fbf4463373c9c468c478e2915f095a40627a1b Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Thu, 15 Jan 2004 02:52:28 +0000 Subject: [PATCH] fixed io cancel shutdown order problem --- src/db/dbContext.cpp | 2 ++ src/db/dbSubscriptionIO.cpp | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/db/dbContext.cpp b/src/db/dbContext.cpp index 44e25d406..307d86c3f 100644 --- a/src/db/dbContext.cpp +++ b/src/db/dbContext.cpp @@ -311,6 +311,8 @@ void dbContext::ioCancel ( dbSubscriptionIO *pSIO = pIO->isSubscription (); if ( pSIO ) { chan.dbContextPrivateListOfIO::eventq.remove ( *pSIO ); + pSIO->unsubscribe ( guard ); + pSIO->channelDeleteException ( guard ); pSIO->destructor ( guard ); this->dbSubscriptionIOFreeList.release ( pSIO ); } diff --git a/src/db/dbSubscriptionIO.cpp b/src/db/dbSubscriptionIO.cpp index 79c81ce7c..038bda1ea 100644 --- a/src/db/dbSubscriptionIO.cpp +++ b/src/db/dbSubscriptionIO.cpp @@ -69,7 +69,6 @@ dbSubscriptionIO::~dbSubscriptionIO () void dbSubscriptionIO::destructor ( epicsGuard < epicsMutex > & guard ) { guard.assertIdenticalMutex ( this->mutex ); - this->unsubscribe ( guard ); this->~dbSubscriptionIO (); }