[core] limit thread's scope to release the Object before detaching the thread

This commit is contained in:
Łukasz Paczos
2019-05-24 12:03:25 +02:00
committed by Łukasz Paczos
parent bc74a8ee0b
commit 5e00a2a764

View File

@@ -58,17 +58,21 @@ public:
platform::makeThreadLowPriority();
platform::attachThread();
util::RunLoop loop_(util::RunLoop::Type::New);
loop = &loop_;
EstablishedActor<Object> establishedActor(loop_, object, std::move(capturedArgs));
// narrowing the scope to release the Object before we detach the thread
{
util::RunLoop loop_(util::RunLoop::Type::New);
loop = &loop_;
EstablishedActor<Object> establishedActor(loop_, object, std::move(capturedArgs));
runningPromise.set_value();
loop->run();
(void) establishedActor;
loop = nullptr;
}
runningPromise.set_value();
loop->run();
(void) establishedActor;
loop = nullptr;
platform::detachThread();
});
}