summaryrefslogtreecommitdiff
path: root/ndb/src/mgmsrv/MgmtSrvrGeneralSignalHandling.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ndb/src/mgmsrv/MgmtSrvrGeneralSignalHandling.cpp')
-rw-r--r--ndb/src/mgmsrv/MgmtSrvrGeneralSignalHandling.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/ndb/src/mgmsrv/MgmtSrvrGeneralSignalHandling.cpp b/ndb/src/mgmsrv/MgmtSrvrGeneralSignalHandling.cpp
index 2126c9d358d..f93948abc75 100644
--- a/ndb/src/mgmsrv/MgmtSrvrGeneralSignalHandling.cpp
+++ b/ndb/src/mgmsrv/MgmtSrvrGeneralSignalHandling.cpp
@@ -108,6 +108,7 @@ MgmtSrvr::sendRecSignal(Uint16 aNodeId,
return -1;
}
theWaitState = aWaitState;
+ theWaitNode = aNodeId;
return receiveOptimisedResponse(waitTime);
}
@@ -119,11 +120,12 @@ MgmtSrvr::receiveOptimisedResponse(int waitTime)
theFacade->checkForceSend(_blockNumber);
NDB_TICKS maxTime = NdbTick_CurrentMillisecond() + waitTime;
- while (theWaitState != NO_WAIT && waitTime > 0) {
+ while (theWaitState != NO_WAIT && theWaitState != WAIT_NODEFAILURE
+ && waitTime > 0) {
NdbCondition_WaitTimeout(theMgmtWaitForResponseCondPtr,
theFacade->theMutexPtr,
waitTime);
- if(theWaitState == NO_WAIT)
+ if(theWaitState == NO_WAIT || theWaitState == WAIT_NODEFAILURE)
break;
waitTime = (maxTime - NdbTick_CurrentMillisecond());
}//while