Skip to content

gh-88354: Fix ThreadPoolExecutor unbalanced semaphore count - #26265

Open
bennieswart wants to merge 4 commits into
python:mainfrom
bennieswart:fix-issue-44188
Open

bennieswart wants to merge 4 commits into
python:mainfrom
bennieswart:fix-issue-44188

Conversation

@bennieswart

@bennieswart bennieswart commented May 20, 2021 •

Copy link
Copy Markdown

Previously when the worker pool was over-saturated, the idle count would
increment after each completed job whereas it would only decrement when
it was already greater than 0.

https://bugs.python.org/issue44188

@the-knights-who-say-ni

Copy link
Copy Markdown

Hello, and thanks for your contribution!

I'm a bot set up to make sure that the project can legally accept this contribution by verifying everyone involved has signed the PSF contributor agreement (CLA).

CLA Missing

Our records indicate the following people have not signed the CLA:

@bennieswart

For legal reasons we need all the people listed to sign the CLA before we can look at your contribution. Please follow the steps outlined in the CPython devguide to rectify this issue.

If you have recently signed the CLA, please wait at least one business day
before our records are updated.

You can check yourself to see if the CLA has been received.

Thanks again for the contribution, we look forward to reviewing it!

@bennieswart

Copy link
Copy Markdown
Author

First time contributing to python - please point out if I'm doing anything wrong.

@bennieswart

Copy link
Copy Markdown
Author

This probably needs to go back to older versions all the way to 3.8 too - please advise on proper process for this if you would like me to do it.

Previously when the worker pool was over-saturated, the idle count would
increment after each completed job whereas it would only decrement when
it was already greater than 0.
@vstinner

Copy link
Copy Markdown
Member

@pitrou: I know that you are a big fan of threads, would you mind to have a look?

@github-actions

Copy link
Copy Markdown

This PR is stale because it has been open for 30 days with no activity.

@github-actions github-actions Bot added the stale Stale PR or inactive for long period of time. label Jul 17, 2021
@pitrou

pitrou commented Aug 31, 2021

Copy link
Copy Markdown
Member

Thank you @bennieswart . I've changed the implementation to use a Lock and an integer attribute, as the Semaphore was used as a regular counter.

@armw4

This comment has been minimized.

@pitrou
pitrou requested review from aeros and pablogsal August 31, 2021 19:11
@armw4

This comment has been minimized.

@armw4

This comment has been minimized.

@MaxwellDupre MaxwellDupre left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks ok to me.

@github-actions github-actions Bot removed the stale Stale PR or inactive for long period of time. label Aug 8, 2022
@github-actions

github-actions Bot commented Apr 9, 2026

Copy link
Copy Markdown

This PR is stale because it has been open for 30 days with no activity.

@github-actions github-actions Bot added the stale Stale PR or inactive for long period of time. label Apr 9, 2026
@github-actions github-actions Bot removed the stale Stale PR or inactive for long period of time. label Aug 11, 2026
@serhiy-storchaka serhiy-storchaka changed the title bpo-44188: Fix ThreadPoolExecutor unbalanced semaphore count gh-88354: Fix ThreadPoolExecutor unbalanced semaphore count Aug 12, 2026
…ue-44188

Co-authored-by: Muse Code (Meta Muse Spark)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants