diff options
Diffstat (limited to 'src/libparser/node/executionnode.cpp')
| -rw-r--r-- | src/libparser/node/executionnode.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/libparser/node/executionnode.cpp b/src/libparser/node/executionnode.cpp index 096c8fe..b231416 100644 --- a/src/libparser/node/executionnode.cpp +++ b/src/libparser/node/executionnode.cpp @@ -2,6 +2,16 @@ #include <QUuid> +namespace +{ +#ifdef QT_DEBUG +constexpr int WaitingTime{2 * 1000 * 60}; +#else +constexpr int WaitingTime{30 * 60 * 1000}; +#endif + +} // namespace + ExecutionNode::ExecutionNode() : m_previousNode(nullptr) , m_result(nullptr) @@ -43,12 +53,19 @@ ExecutionNode* ExecutionNode::getNextNode() void ExecutionNode::execute(ExecutionNode* previous) { + QElapsedTimer timer; + timer.start(); + auto errorCount= m_errors.count(); run(previous); - if(m_nextNode && errorCount == m_errors.count()) + auto timeLimit= timer.hasExpired(WaitingTime); + + if(m_nextNode && errorCount == m_errors.count() && !timeLimit) m_nextNode->execute(this); + else if(timeLimit) + qDebug() << "Error too long" << WaitingTime << timeLimit << timer.elapsed(); } QMap<Dice::ERROR_CODE, QString> ExecutionNode::getExecutionErrorMap() |