multiprocessing .Condition.notify(_all) function has O(N) time complexity where N is the number of wait() calls with a timeout since the last notify(_all) call
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
Research direction
Start with the multiprocessing Condition.notify and notify_all implementation, then read the attached condition_test.py, which demonstrates the performance issue. Compare the proposed mp_sync_condition.patch and mp_sync_condition_with_test.patch, and confirm done when the regression test passes without the reported O(N) notification cost.
Written by the indexing model from the issue text.
Description
| BPO | 25469 |
|---|---|
| Nosy | @applio |
| Files |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
assignee = None
closed_at = None
created_at = <Date 2015-10-24.10:09:55.278>
labels = ['library', 'performance']
title = 'multiprocessing .Condition.notify(_all) function has O(N) time complexity where N is the number of wait() calls with a timeout since the last notify(_all) call'
updated_at = <Date 2015-11-06.03:20:20.418>
user = 'https://bugs.python.org/vilnistermanis'
bugs.python.org fields:
activity = <Date 2015-11-06.03:20:20.418>
actor = 'davin'
assignee = 'none'
closed = False
closed_date = None
closer = None
components = ['Library (Lib)']
creation = <Date 2015-10-24.10:09:55.278>
creator = 'vilnis.termanis'
dependencies = []
files = ['40853', '40854', '40958']
hgrepos = []
issue_num = 25469
keywords = ['patch']
message_count = 4.0
messages = ['253403', '253427', '253685', '254145']
nosy_count = 4.0
nosy_names = ['jnoller', 'vilnis.termanis', 'sbt', 'davin']
pr_nums = []
priority = 'normal'
resolution = None
stage = None
status = 'open'
superseder = None
type = 'performance'
url = 'https://bugs.python.org/issue25469'
versions = ['Python 2.7', 'Python 3.5', 'Python 3.6']
- Dominant language
- Python
- Stars
- 77.2k
- Forks
- 36k
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 558
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from python/cpython
-
docs pending
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
stdlib type-feature
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
stdlib type-feature
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
build type-bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
stdlib topic-email type-feature
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Similar issues
-
🐛 Bug 🔔 Pending processing
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
jumpserver/jumpserver#17584 ·
-
link-check link-check:sphinx-theme
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
modelscope/DiffSynth-Studio#1702 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
qgis/QGIS-Documentation#11275 ·
-
bug priority:normal ready-for-dev
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
OpenHands/extensions#626 · 1 comment ·