GH-107803: double linked list implementation for asyncio tasks by kumaraditya303 · Pull Request #107804 · python/cpython · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
cc66eeb
linked list
kumaraditya303 May 24, 2023
d5a3d87
add tail optmiization to linked list
kumaraditya303 May 26, 2023
a0c5fcf
wip
kumaraditya303 May 26, 2023
77d012f
wip
kumaraditya303 May 28, 2023
5d9653d
wip
kumaraditya303 May 28, 2023
5a00198
Merge branch 'main' of https://github.com/python/cpython into linked-…
kumaraditya303 Jun 16, 2023
4cdc834
Merge branch 'main' of https://github.com/python/cpython into linked-…
kumaraditya303 Aug 2, 2023
35a00f1
more fixes
kumaraditya303 Aug 2, 2023
fddb9d6
Merge branch 'main' of https://github.com/python/cpython into linked-…
kumaraditya303 Aug 5, 2023
1d32835
finally it works
kumaraditya303 Aug 5, 2023
b46bcfe
Merge branch 'main' of https://github.com/python/cpython into linked-…
kumaraditya303 Aug 8, 2023
ee7ead2
Merge branch 'main' of https://github.com/python/cpython into linked-…
kumaraditya303 Aug 9, 2023
af0280a
add tests
kumaraditya303 Aug 9, 2023
999fff7
remove weakreflist
kumaraditya303 Aug 10, 2023
87a2231
add some comments
kumaraditya303 Aug 10, 2023
1812408
Merge branch 'main' of https://github.com/python/cpython into linked-…
kumaraditya303 Aug 12, 2023
3cb5673
Merge branch 'main' of https://github.com/python/cpython into linked-…
kumaraditya303 Aug 15, 2023
9552636
reduce code duplication in _asynciomodule.c
kumaraditya303 Aug 15, 2023
5c5b559
address some review comments
kumaraditya303 Aug 17, 2023
82cf69b
add invariants about the state of the linked list
kumaraditya303 Aug 17, 2023
8998f6a
add better explanation
kumaraditya303 Aug 17, 2023
d93c4e1
clinic regen
kumaraditya303 Aug 17, 2023
35726d9
reorder branches for better branch prediction
kumaraditya303 Aug 17, 2023
8dd0492
Update Modules/_asynciomodule.c
kumaraditya303 Aug 18, 2023
8325302
Apply suggestions from code review
kumaraditya303 Aug 19, 2023
80b65e0
fix capturing of eager tasks
kumaraditya303 Aug 19, 2023
b67649e
add comment to task finalization
kumaraditya303 Aug 20, 2023
1252b2f
Merge branch 'main' of https://github.com/python/cpython into linked-…
kumaraditya303 Aug 20, 2023
457739a
Merge branch 'main' into linked-list
kumaraditya303 Aug 20, 2023
4670731
Merge branch 'main' of https://github.com/python/cpython into linked-…
kumaraditya303 Aug 24, 2023
e061081
fix tests and couple c implmentation to c task
kumaraditya303 Aug 24, 2023
836d254
Merge branch 'main' of https://github.com/python/cpython into linked-…
kumaraditya303 Aug 30, 2023
efce4b3
fix test
kumaraditya303 Aug 30, 2023
c7b604c
Merge branch 'main' of https://github.com/python/cpython into linked-…
kumaraditya303 Jun 21, 2024
56beb04
Merge branch 'main' of https://github.com/python/cpython into linked-…
kumaraditya303 Jun 22, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Include/internal/pycore_global_objects_fini_generated.h

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Include/internal/pycore_global_strings.h
1 change: 1 addition & 0 deletions Include/internal/pycore_runtime_init_generated.h

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions Include/internal/pycore_unicodeobject_generated.h

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions Lib/asyncio/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -1097,14 +1097,14 @@ def _unregister_eager_task(task):
_py_enter_task = _enter_task
_py_leave_task = _leave_task
_py_swap_current_task = _swap_current_task

_py_all_tasks = all_tasks

try:
from _asyncio import (_register_task, _register_eager_task,
_unregister_task, _unregister_eager_task,
_enter_task, _leave_task, _swap_current_task,
_scheduled_tasks, _eager_tasks, _current_tasks,
current_task)
current_task, all_tasks)
except ImportError:
pass
else:
Expand All @@ -1116,3 +1116,4 @@ def _unregister_eager_task(task):
_c_enter_task = _enter_task
_c_leave_task = _leave_task
_c_swap_current_task = _swap_current_task
_c_all_tasks = all_tasks
34 changes: 23 additions & 11 deletions Lib/test/test_asyncio/test_tasks.py
Loading