1
0
Fork 0
mirror of https://gitlab.com/niansa/cosched.git synced 2025-03-06 20:53:26 +01:00

Fixed ScheduledThread::main_loop keeping queue lock for too long

This commit is contained in:
niansa 2023-05-04 20:36:04 +02:00
parent 6a225e88df
commit 860e097972

View file

@ -8,12 +8,14 @@ void CoSched::ScheduledThread::main_loop() {
// Loop until shutdown is requested
while (!shutdown_requested) {
// Start all new tasks enqueued
std::scoped_lock L(queue_mutex);
while (!queue.empty()) {
auto e = std::move(queue.front());
queue.pop();
sched.create_task(e.task_name);
async::detach(e.task_fcn());
{
std::scoped_lock L(queue_mutex);
while (!queue.empty()) {
auto e = std::move(queue.front());
queue.pop();
sched.create_task(e.task_name);
async::detach(e.task_fcn());
}
}
// Run once
sched.run_once();