mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-16 01:51:45 +00:00
Fix throw after quit signal case
This commit is contained in:
committed by
Dennis Klein
parent
e39316c866
commit
cb199e7283
@@ -650,10 +650,21 @@ bool FairMQStateMachine::CheckCurrentState(const string& state) const
|
||||
}
|
||||
|
||||
void FairMQStateMachine::ProcessWork()
|
||||
try
|
||||
{
|
||||
static_pointer_cast<FairMQFSM>(fFsm)->ProcessWork();
|
||||
} catch(...) {
|
||||
{
|
||||
lock_guard<mutex> lock(static_pointer_cast<FairMQFSM>(fFsm)->fWorkMutex);
|
||||
static_pointer_cast<FairMQFSM>(fFsm)->fWorkActive = false;
|
||||
static_pointer_cast<FairMQFSM>(fFsm)->fWorkAvailable = false;
|
||||
static_pointer_cast<FairMQFSM>(fFsm)->fWorkDoneCondition.notify_one();
|
||||
}
|
||||
ChangeState(ERROR_FOUND);
|
||||
throw;
|
||||
}
|
||||
|
||||
|
||||
int FairMQStateMachine::GetEventNumber(const string& event)
|
||||
{
|
||||
return eventNumbers.at(event);
|
||||
|
Reference in New Issue
Block a user