Merge pull request #1005 from jerry-skydio/jerry/revup/master/des

Fix std::thread assertion on destruction
This commit is contained in:
Leonid Stryzhevskyi 2025-01-14 22:46:34 +02:00 committed by GitHub
commit bc10721208
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 14 additions and 4 deletions

View File

@ -66,16 +66,22 @@ void Executor::SubmissionProcessor::pushOneTask(CoroutineHandle* task) {
}
void Executor::SubmissionProcessor::stop() {
m_isRunning = false;
m_processor.stop();
if (m_isRunning) {
m_isRunning = false;
m_processor.stop();
}
}
void Executor::SubmissionProcessor::join() {
m_thread.join();
if (m_thread.joinable()) {
m_thread.join();
}
}
void Executor::SubmissionProcessor::detach() {
m_thread.detach();
if (m_thread.joinable()) {
m_thread.detach();
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@ -54,6 +54,10 @@ private:
std::thread m_thread;
public:
SubmissionProcessor();
~SubmissionProcessor() override {
stop();
join();
}
public:
template<typename CoroutineType, typename ... Args>