-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Implement lock-free queue for scheduler message queue #9710
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from 1 commit
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
6d5f94d
lock-free queue for scheduler message queue
toffaletti e3b6576
add cache line padding
toffaletti 81a1fb2
add multi-producer multi-consumer bounded queue to use for sleeper list
toffaletti c381d77
add padding to prevent false sharing
toffaletti d0064f9
clean up
toffaletti 1c1caaa
fix bug introduced by previous clean up. more clean up.
toffaletti c3d50ce
minor
toffaletti fd67f06
Merge branch 'master' into sched_queue
toffaletti a53c141
minor
toffaletti 22d1305
Merge branch 'master' into sched_queue
toffaletti d199dc2
Merge branch 'master' into sched_queue
toffaletti File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
clean up
- Loading branch information
commit d0064f94ea9381b9c9fcddabdb0b6ec5e2ea324e
There are no files selected for viewing
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
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I admit I don't quite follow the logic after this point in the function.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe the logic after this point is for the case when the queue either empty or is about to become empty. If it is empty, it just returns None, if there is a single item in the queue, it pushes the stub node that represents an empty queue so head is the stub node and then checks again to see if next is empty (another thread might have added something to the queue).