mirror of https://gitee.com/bigwinds/arangodb
Merge branch 'devel' of https://github.com/arangodb/arangodb into spdvpk
This commit is contained in:
commit
34057af3bc
|
@ -1126,6 +1126,28 @@ void ClusterCommThread::run() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (op->result.single) {
|
||||||
|
// For single requests this is it, either it worked and is ready
|
||||||
|
// or there was an error (timeout or other). If there is a callback,
|
||||||
|
// we have to call it now:
|
||||||
|
if (nullptr != op->callback.get()) {
|
||||||
|
if (op->result.status == CL_COMM_SENDING) {
|
||||||
|
op->result.status = CL_COMM_SENT;
|
||||||
|
}
|
||||||
|
if ((*op->callback.get())(&op->result)) {
|
||||||
|
// This is fully processed, so let's remove it from the queue:
|
||||||
|
CONDITION_LOCKER(locker, cc->somethingToSend);
|
||||||
|
auto i = cc->toSendByOpID.find(op->result.operationID);
|
||||||
|
TRI_ASSERT(i != cc->toSendByOpID.end());
|
||||||
|
auto q = i->second;
|
||||||
|
cc->toSendByOpID.erase(i);
|
||||||
|
cc->toSend.erase(q);
|
||||||
|
delete op;
|
||||||
|
continue; // do not move to the received queue but forget it
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
cc->moveFromSendToReceived(op->result.operationID);
|
cc->moveFromSendToReceived(op->result.operationID);
|
||||||
// Potentially it was dropped in the meantime, then we forget about it.
|
// Potentially it was dropped in the meantime, then we forget about it.
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue