Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

GH-116738: document thread-safety of bisect#136555

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
nascheme wants to merge3 commits intopython:main
base:main
Choose a base branch
Loading
fromnascheme:gh-116738-bisect-threadsafe-doc

Conversation

nascheme
Copy link
Member

@naschemenascheme commentedJul 11, 2025
edited by github-actionsbot
Loading

I don't think it makes sense to make these functions thread-safe. They are already unsafe when used in the default build. And, given that they can operate on any sequence object, trying to lock the sequence object doesn't make sense.

I added a unit test because I believe these functions should not crash or produce TSAN warnings when they are used on a sequence being mutated in another thread.


📚 Documentation preview 📚:https://cpython-previews--136555.org.readthedocs.build/

@naschemenascheme added docsDocumentation in the Doc dir topic-free-threading labelsJul 11, 2025
@bedevere-appbedevere-appbot added the testsTests in the Lib/test dir labelJul 11, 2025
Copy link
Member

@picnixzpicnixz left a comment
edited
Loading

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Possible suggestions:

  • Use a.. note:: if you think users should know about it.
  • Use a.. warning:: if you think users should becareful about it.
  • Do not use either of them if you think it's just good that users know about it (a note or a warning is quite visible in the sense that it creates a box where the entire content is inside that box).
  • Use a subsection about thread-safetiness. Or use a small warning box just saying that the functions are not thread-safe, and add a link to a section at the bottom of the page that contains more detailed explanations.

cc@hugovk

@nascheme
Copy link
MemberAuthor

Using "note" seems appropriate to me in this case. In the long term, I suggest it makes sense to have a thread-safety (or concurrency-safety) section for any module that has unusual rules (non-atomic functions, shared state). In the "warnings" doc, I added a "Concurrent safety of Context Managers" section to it. That's a case where the rules are quite complex and a dedicated section makes sense.

picnixz reacted with thumbs up emoji

@naschemenascheme marked this pull request as ready for reviewJuly 14, 2025 18:50
@rhettingerrhettinger removed their request for reviewJuly 15, 2025 03:17
"""
return all(lst[i - 1] <= lst[i] for i in range(1, len(lst)))

def run_concurrently(self, worker_func, args, nthreads):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

There isthreading_helper.run_concurrently which you can use here

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@picnixzpicnixzpicnixz left review comments

@kumaraditya303kumaraditya303kumaraditya303 left review comments

Assignees
No one assigned
Labels
awaiting core reviewdocsDocumentation in the Doc dirskip newstestsTests in the Lib/test dirtopic-free-threading
Projects
Status: Todo
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

3 participants
@nascheme@picnixz@kumaraditya303

[8]ページ先頭

©2009-2025 Movatter.jp