Draft
Conversation
1438295 to
acd9955
Compare
Contributor
|
Using CPM for dependencies is good, I wanted to suggest it sooner or later Consider to migrate other dependencies too |
This is a proof of concept that would replace the normal coro::thread_pool if it works out, this uses a chase lev work stealing queue with an atomic list for the global queue when schedules happen outside a thread pool worker. It leverages thread_local uint32_t to lookup the current threads index for its owned internally local thread queue, if that isn't set then we know we're off a worker thread and need to enqueue on the global queue.
acd9955 to
1d9605d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a proof of concept that would replace the normal coro::thread_pool if it works out, this uses a chase lev work stealing queue with an atomic list for the global queue when schedules happen outside a thread pool worker. It leverages thread_local uint32_t to lookup the current threads index for its owned internally local thread queue, if that isn't set then we know we're off a worker thread and need to enqueue on the global queue.