Commit aa25e994 authored by Alexander Stukowski's avatar Alexander Stukowski

Fixed segfault in AsynchronousModifier::evaluate() when compiled with GCC

parent 0316f9c0
Pipeline #25867285 failed with stage
in 49 minutes and 12 seconds
......@@ -63,7 +63,8 @@ Future<PipelineFlowState> AsynchronousModifier::evaluate(TimePoint time, Modifie
// Execute the engine in a worker thread.
// Collect results from the engine in the UI thread once it has finished running.
return dataset()->container()->taskManager().runTaskAsync(engine->task())
const auto& task = engine->task();
return dataset()->container()->taskManager().runTaskAsync(task)
.then(executor(), [this, time, modApp, input = std::move(input), engine = std::move(engine)]() mutable {
if(modApp && modApp->modifier() == this) {
......
......@@ -69,6 +69,7 @@ public:
OVITO_ASSERT_MSG(isValid(), "SharedFuture::results()", "Future must be valid.");
OVITO_ASSERT_MSG(isFinished(), "SharedFuture::results()", "Future must be in fulfilled state.");
OVITO_ASSERT_MSG(!isCanceled(), "SharedFuture::results()", "Future must not be canceled.");
OVITO_ASSERT_MSG(std::tuple_size<tuple_type>::value != 0, "SharedFuture::results()", "Future must not be of type <void>.");
sharedState()->throwPossibleException();
return sharedState()->template getResults<tuple_type>();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment