add current_task support for tasks.py

pull/138/head v0.0.26
cirospaciari 2023-08-17 14:30:00 -03:00
rodzic 3b28e0edfe
commit fb1561dd4e
3 zmienionych plików z 14 dodań i 5 usunięć

Wyświetl plik

@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project] [project]
name = "socketify" name = "socketify"
version = "0.0.25" version = "0.0.26"
dynamic = ["dependencies"] dynamic = ["dependencies"]
authors = [ authors = [
{ name="Ciro Spaciari", email="ciro.spaciari@gmail.com" }, { name="Ciro Spaciari", email="ciro.spaciari@gmail.com" },

Wyświetl plik

@ -58,7 +58,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
setuptools.setup( setuptools.setup(
name="socketify", name="socketify",
version="0.0.25", version="0.0.26",
platforms=["any"], platforms=["any"],
author="Ciro Spaciari", author="Ciro Spaciari",
author_email="ciro.spaciari@gmail.com", author_email="ciro.spaciari@gmail.com",

Wyświetl plik

@ -5,9 +5,9 @@ from asyncio import (
exceptions, exceptions,
futures, futures,
_register_task, _register_task,
# _enter_task, _enter_task,
# current_task, current_task,
# _leave_task, _leave_task,
_unregister_task, _unregister_task,
) )
import contextvars import contextvars
@ -92,6 +92,7 @@ class RequestTask:
# status is still pending # status is still pending
_log_destroy_pending = True _log_destroy_pending = True
_parent_task = None
def __init__( def __init__(
self, coro, loop, default_done_callback=None, no_register=False, context=None self, coro, loop, default_done_callback=None, no_register=False, context=None
): ):
@ -498,6 +499,11 @@ class RequestTask:
self._must_cancel = False self._must_cancel = False
coro = self._coro coro = self._coro
self._fut_waiter = None self._fut_waiter = None
# _parent_task = current_task(self._loop)
# if _parent_task is not None:
# _leave_task(self._loop, _parent_task)
# self._parent_task = _parent_task
# _enter_task(self._loop, self) # _enter_task(self._loop, self)
# Call either coro.throw(exc) or coro.send(None). # Call either coro.throw(exc) or coro.send(None).
try: try:
@ -569,6 +575,9 @@ class RequestTask:
self._loop.call_soon(self.__step, new_exc, context=self._context) self._loop.call_soon(self.__step, new_exc, context=self._context)
finally: finally:
# _leave_task(self._loop, self) # _leave_task(self._loop, self)
# if self._parent_task is not None:
# _enter_task(self._loop, self._parent_task)
# self._parent_task = None
self = None # Needed to break cycles when an exception occurs. self = None # Needed to break cycles when an exception occurs.
def __wakeup(self, future): def __wakeup(self, future):