From 32164fb91df3e80727675270c5476d1c47699071 Mon Sep 17 00:00:00 2001 From: Elizaveta Shashkova Date: Mon, 26 Oct 2015 19:09:38 +0300 Subject: [PATCH] Detect asyncio tasks finishing (PY-17253) --- .../pydevd_concurrency_logger.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/python/helpers/pydev/pydevd_concurrency_analyser/pydevd_concurrency_logger.py b/python/helpers/pydev/pydevd_concurrency_analyser/pydevd_concurrency_logger.py index 66d17965c0a9..379c9f7bcc32 100644 --- a/python/helpers/pydev/pydevd_concurrency_analyser/pydevd_concurrency_logger.py +++ b/python/helpers/pydev/pydevd_concurrency_analyser/pydevd_concurrency_logger.py @@ -279,14 +279,20 @@ class AsyncioLogger: if not hasattr(frame, "f_back") or frame.f_back is None: return - back = frame.f_back - method_name = back.f_code.co_name if DictContains(frame.f_locals, "self"): self_obj = frame.f_locals["self"] if isinstance(self_obj, asyncio.Task): - if method_name in ("__init__",): + method_name = frame.f_code.co_name + if method_name == "set_result": + task_id = id(self_obj) + task_name = self.task_mgr.get(str(task_id)) + send_message("asyncio_event", event_time, task_name, task_name, "thread", "stop", frame.f_code.co_filename, + frame.f_lineno, frame) + + method_name = back.f_code.co_name + if method_name == "__init__": task_id = id(self_obj) task_name = self.task_mgr.get(str(task_id)) send_message("asyncio_event", event_time, task_name, task_name, "thread", "start", frame.f_code.co_filename,