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:
parent
6a225e88df
commit
860e097972
1 changed files with 8 additions and 6 deletions
|
@ -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();
|
||||
|
|
Loading…
Add table
Reference in a new issue