mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
GH-107803: double linked list implementation for asyncio tasks (GH-107804)
* linked list * add tail optmiization to linked list * wip * wip * wip * more fixes * finally it works * add tests * remove weakreflist * add some comments * reduce code duplication in _asynciomodule.c * address some review comments * add invariants about the state of the linked list * add better explanation * clinic regen * reorder branches for better branch prediction * Update Modules/_asynciomodule.c * Apply suggestions from code review Co-authored-by: Itamar Oren <itamarost@gmail.com> * fix capturing of eager tasks * add comment to task finalization * fix tests and couple c implmentation to c task improved linked-list logic and more comments * fix test --------- Co-authored-by: Itamar Oren <itamarost@gmail.com>
This commit is contained in:
parent
e213475495
commit
4717aaa1a7
8 changed files with 374 additions and 96 deletions
|
@ -1097,14 +1097,14 @@ _py_unregister_eager_task = _unregister_eager_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:
|
||||
|
@ -1116,3 +1116,4 @@ else:
|
|||
_c_enter_task = _enter_task
|
||||
_c_leave_task = _leave_task
|
||||
_c_swap_current_task = _swap_current_task
|
||||
_c_all_tasks = all_tasks
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue