-
Notifications
You must be signed in to change notification settings - Fork 30
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
A lock-free bounded queue #83
Draft
polytypic
wants to merge
1
commit into
main
Choose a base branch
from
lock-free-bounded-queue
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains 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
polytypic
force-pushed
the
lock-free-bounded-queue
branch
3 times, most recently
from
July 15, 2023 19:54
3bee128
to
79f3692
Compare
polytypic
force-pushed
the
lock-free-bounded-queue
branch
from
July 27, 2023 13:08
79f3692
to
d6bc981
Compare
polytypic
force-pushed
the
lock-free-bounded-queue
branch
from
August 21, 2023 07:50
d6bc981
to
98804fa
Compare
lyrm
reviewed
Oct 20, 2023
polytypic
force-pushed
the
lock-free-bounded-queue
branch
4 times, most recently
from
November 3, 2023 13:31
d4b7e51
to
e548e50
Compare
This was referenced Nov 3, 2023
polytypic
force-pushed
the
lock-free-bounded-queue
branch
2 times, most recently
from
November 20, 2023 17:59
0084799
to
2aae21c
Compare
polytypic
force-pushed
the
lock-free-bounded-queue
branch
4 times, most recently
from
January 11, 2024 14:40
261eabb
to
928660b
Compare
polytypic
force-pushed
the
lock-free-bounded-queue
branch
2 times, most recently
from
January 14, 2024 12:28
12a77c7
to
46c2cae
Compare
polytypic
force-pushed
the
lock-free-bounded-queue
branch
3 times, most recently
from
February 17, 2024 17:22
b47847c
to
3749cbf
Compare
polytypic
force-pushed
the
lock-free-bounded-queue
branch
from
March 1, 2024 10:16
3749cbf
to
5e7d637
Compare
FYI, I will squash this PR to a single commit to make this PR a little bit easier to work with. |
polytypic
force-pushed
the
lock-free-bounded-queue
branch
from
March 1, 2024 11:49
734c367
to
47cdeb1
Compare
polytypic
force-pushed
the
lock-free-bounded-queue
branch
from
March 1, 2024 13:52
47cdeb1
to
4accc07
Compare
polytypic
force-pushed
the
lock-free-bounded-queue
branch
from
March 13, 2024 07:47
4accc07
to
3f75aea
Compare
polytypic
force-pushed
the
lock-free-bounded-queue
branch
from
April 2, 2024 16:19
3f75aea
to
5565737
Compare
polytypic
force-pushed
the
lock-free-bounded-queue
branch
2 times, most recently
from
September 29, 2024 08:57
01f316b
to
55485fd
Compare
polytypic
force-pushed
the
lock-free-bounded-queue
branch
from
September 29, 2024 09:08
55485fd
to
72af6bf
Compare
FYI, I changed this to use Picos instead of DLA. |
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 implements a lock-free bounded queue — blocking using domain-local-await.
The data structure / algorithm is based on the Michael-Scott queue extended with length maintenance and caching of remaining capacity in such a way that additional contention is avoided in the happy paths.
TODO:
try_push
,length
(can be done inO(1)
),is_empty