-
-
Notifications
You must be signed in to change notification settings - Fork 32.1k
gh-112050: Make collections.deque thread-safe in free-threaded builds #113830
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
Merged
Merged
Changes from 1 commit
Commits
Show all changes
58 commits
Select commit
Hold shift + click to select a range
de90440
Convert most collections.deque method use clinic
mpage 010d12c
Make deque.pop thread-safe
mpage 32452db
Make deque.popleft thread-safe
mpage a73aa10
Make deque.append thread-safe
mpage 759d149
Make deque.appendleft thread-safe
mpage c0b14ea
Make deque.count thread-safe
mpage 72bee62
Make deque.index thread-safe
mpage 2fd397a
Make deque.insert thread-safe
mpage dbe49a0
Make deque.remove thread-safe
mpage 5af87e4
Make deque.rotate thread-safe
mpage 6fcd551
Make deque.reverse thread-safe
mpage 70f07a7
Make deque.contains thread-safe
mpage 16bbe58
Make deque indexing thread-safe
mpage cbd01c7
Make deque item assignment thread-safe
mpage 92782b1
Make deque.extend thread-safe
mpage 112b6c9
Make deque.extendleft thread-safe
mpage a4201f1
Add note about why inplace concat doesn't need a critical section
mpage 1e7d0b8
Make deque.clear thread-safe
mpage 54975b9
Make deque's inplace repeat thread-safe
mpage 1deb61c
Make deque.copy thread-safe
mpage 6b1cb43
Make deque.repeat thread-safe
mpage 1957c92
Make deque concat thread-safe
mpage 6141ce5
Make deque.__reduce__ thread-safe
mpage 182a034
Make deque.len thread-safe
mpage c8fdcec
Make deque.__init__ thread-safe
mpage 125d253
Make deque.__sizeof__ thread-safe
mpage 7cea52d
Remove critical section around deque's tp_clear
mpage f0f86d2
Make dequeiter ctor thread-safe
mpage 02efe9b
Make dequeiter_next thread-safe
mpage 99ffbba
Make dequiter_len thread-safe
mpage edb6ffa
Make dequeiter_reduce thread-safe
mpage 0beaf72
Fix usage of critical section
mpage d972957
Make dequereviter_next thread-safe
mpage ac2ee0e
Detail why we don't need to lock in new
mpage ce68613
Formatting fixes for PEP-007
mpage 195949e
Merge remote-tracking branch 'upstream/main' into deque-clinic
mpage 17d19da
📜🤖 Added by blurb_it.
blurb-it[bot] db02d54
Fix formatting of NEWS entry
mpage 03c4cd9
Merge branch 'main' into ft-thread-safe-deque
mpage 6e68cad
Use `_lock_held` suffix for functions that require the per-object lock
mpage 72ea9eb
Shorten NEWS entry
mpage 9f80af8
Revert changes to append helpers to minimize churn
mpage fc91a83
Use recursive impl for extendleft and extend
mpage 7d65ac5
Fix critical section
mpage 8072617
Revert NEEDS_TRIM refactor
mpage 672184d
Don't need to protect type accesses w/ CS
mpage 4461a00
Remove defensive initializations
mpage b6741e3
Relax critsecs accesses that are immutable post construction
mpage 0519f72
Fix critsec for dequeiter_reduce
mpage 339dcd9
Revert style changes
mpage 7dfb55f
Merge branch 'main' into ft-thread-safe-deque
erlend-aasland fdadbf9
Update Misc/NEWS.d/next/Core and Builtins/2024-01-08-21-57-41.gh-issu…
erlend-aasland 3c10498
Merge branch 'main' into ft-thread-safe-deque
mpage 1d00d9f
Merge branch 'main' into ft-thread-safe-deque
mpage b166202
Merge branch 'main' into ft-thread-safe-deque
mpage 6e64ef4
Use free-threaded atomic wrapper for loading deque_iter len
mpage 6ffad44
Merge remote-tracking branch 'origin/ft-thread-safe-deque' into ft-th…
mpage fa7e8a8
Use free-threaded atomic wrapper in deque_len, too
mpage 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
Shorten NEWS entry
- Loading branch information
commit 72ea9eb81fd961ecf9380bbb37e51d48d5452629
There are no files selected for viewing
2 changes: 1 addition & 1 deletion
2
Misc/NEWS.d/next/Core and Builtins/2024-01-08-21-57-41.gh-issue-112050.qwgjx1.rst
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
Make methods on ``collections.deque`` thread-safe when the GIL is disabled. When the GIL is disabled, methods that operate a deque's internal state will do so only while holding the object's lock. | ||
Make methods on ``collections.deque`` thread-safe when the GIL is disabled. | ||
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.
Uh oh!
There was an error while loading. Please reload this page.