Skip to content

Conversation

@jbaldwin
Copy link
Owner

No description provided.

* use coro::detail::awaiter_list_* functions to pass waiting coroutine
  handles into the executors.
* since they are forward lists they are reversed before resuming the
  handles to guarantee they are still somewhat ordered
* coro::io_scheduler uses a global queue since the event loop is the
  only thread that will pull from the pending tasks
* coro::thread_pool uses a global queue and local queues to process
  pending tasks. Thread executors will attempt to steal work from other
queues if they run out of work.

Closes #404
* uses work stealing when global queue is drained
* each worker has its own cond var + mutex for sleeping to reduce
  contention
@jbaldwin jbaldwin self-assigned this Nov 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants