GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — gh-117435: Make `SemLock` thread-safe in free-threaded build by colesbury · Pull Request #117436 · python/cpython

Conversation

@colesbury

@colesbury colesbury commented Apr 1, 2024 •
edited by bedevere-app Bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Use critical sections to make acquire(), release(), and _count() thread-safe without the GIL.

  • Issue: Make multiprocessing SemLock thread-safe in the free-threaded build #117435

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@colesbury
pythongh-117435: Make SemLock thread-safe in free-threaded build
dcdff0d
Use critical sections to make acquire, release, and _count thread-safe
without the GIL.
@colesbury
colesbury requested a review from DinoV April 1, 2024 21:48
@colesbury
colesbury requested a review from gpshead as a code owner April 1, 2024 21:48
@bedevere-app bedevere-app Bot mentioned this pull request Apr 1, 2024
Make multiprocessing SemLock thread-safe in the free-threaded build #117435
Closed
@bedevere-app bedevere-app Bot added the awaiting core review label Apr 1, 2024
@colesbury

colesbury commented Apr 1, 2024 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor Author

It feels a bit silly to put a lock in the lock implementation, but it's surprisingly difficult to make the modifications to count thread-safe, particularly for the kind == SEMAPHORE use-case where multiple threads may "release" a semaphore concurrently.

erlend-aasland reacted with laugh emoji
All reactions
  • 😄 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@colesbury colesbury added the skip news label Apr 1, 2024
@colesbury colesbury mentioned this pull request Apr 1, 2024
Disable GIL by default in free-threaded build #116749
Closed
erlend-aasland
erlend-aasland approved these changes Apr 4, 2024
View reviewed changes
@bedevere-app bedevere-app Bot added awaiting merge and removed awaiting core review labels Apr 4, 2024
@colesbury
colesbury merged commit de5ca0b into python:main Apr 4, 2024
@colesbury
colesbury deleted the gh-117435-semlock branch April 4, 2024 18:09
@bedevere-app bedevere-app Bot removed the awaiting merge label Apr 4, 2024
diegorusso pushed a commit to diegorusso/cpython that referenced this pull request Apr 17, 2024
@colesbury @diegorusso
pythongh-117435: Make SemLock thread-safe in free-threaded build (p…
2b7b6b3
…ython#117436)

Use critical sections to make acquire, release, and _count thread-safe
without the GIL.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@erlend-aasland erlend-aasland erlend-aasland approved these changes
@DinoV DinoV Awaiting requested review from DinoV
@gpshead gpshead Awaiting requested review from gpshead gpshead is a code owner

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

skip news

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@colesbury @erlend-aasland
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.
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.