diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2014-12-04 22:00:13 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2014-12-04 22:00:13 (GMT) |
commit | fe22e0985adae5ccfe230c815267fd410de59148 (patch) | |
tree | 004adb7fc3a3223faaabbf0f7e217aa7fd53bf86 /Lib/asyncio | |
parent | bb37b4ca7341bc1f09996c4c7a1d59b32d80c5a6 (diff) | |
download | cpython-fe22e0985adae5ccfe230c815267fd410de59148.zip cpython-fe22e0985adae5ccfe230c815267fd410de59148.tar.gz cpython-fe22e0985adae5ccfe230c815267fd410de59148.tar.bz2 |
asyncio: Initialize more Future and Task attributes in the class definition to
avoid attribute errors in destructors.
Diffstat (limited to 'Lib/asyncio')
-rw-r--r-- | Lib/asyncio/futures.py | 3 | ||||
-rw-r--r-- | Lib/asyncio/tasks.py | 7 |
2 files changed, 5 insertions, 5 deletions
diff --git a/Lib/asyncio/futures.py b/Lib/asyncio/futures.py index 19e7918..f46d008 100644 --- a/Lib/asyncio/futures.py +++ b/Lib/asyncio/futures.py @@ -135,6 +135,7 @@ class Future: _result = None _exception = None _loop = None + _source_traceback = None _blocking = False # proper use of future (yield vs yield from) @@ -155,8 +156,6 @@ class Future: self._callbacks = [] if self._loop.get_debug(): self._source_traceback = traceback.extract_stack(sys._getframe(1)) - else: - self._source_traceback = None def _format_callbacks(self): cb = self._callbacks diff --git a/Lib/asyncio/tasks.py b/Lib/asyncio/tasks.py index a2128c5..9aebffd 100644 --- a/Lib/asyncio/tasks.py +++ b/Lib/asyncio/tasks.py @@ -41,6 +41,10 @@ class Task(futures.Future): # all running event loops. {EventLoop: Task} _current_tasks = {} + # If False, don't log a message if the task is destroyed whereas its + # status is still pending + _log_destroy_pending = True + @classmethod def current_task(cls, loop=None): """Return the currently running task in an event loop or None. @@ -73,9 +77,6 @@ class Task(futures.Future): self._must_cancel = False self._loop.call_soon(self._step) self.__class__._all_tasks.add(self) - # If False, don't log a message if the task is destroyed whereas its - # status is still pending - self._log_destroy_pending = True # On Python 3.3 or older, objects with a destructor that are part of a # reference cycle are never destroyed. That's not the case any more on |