Skip to content

Commit 50ced30

Browse files
authored
Merge pull request #100 from dlashua/unique
use list for unique_task2name
2 parents 6a1d377 + a41fee0 commit 50ced30

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

custom_components/pyscript/function.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,14 @@ async def task_unique(name, kill_me=False):
163163
except asyncio.CancelledError:
164164
pass
165165
if curr_task in cls.our_tasks:
166+
if name in cls.unique_name2task:
167+
task = cls.unique_name2task[name]
168+
if task in cls.unique_task2name:
169+
cls.unique_task2name[task].discard(name)
166170
cls.unique_name2task[name] = curr_task
167-
cls.unique_task2name[curr_task] = name
171+
if curr_task not in cls.unique_task2name:
172+
cls.unique_task2name[curr_task] = set()
173+
cls.unique_task2name[curr_task].add(name)
168174

169175
return task_unique
170176

@@ -296,7 +302,8 @@ async def run_coro(cls, coro):
296302
_LOGGER.error("run_coro: got exception %s", traceback.format_exc(-1))
297303
finally:
298304
if task in cls.unique_task2name:
299-
del cls.unique_name2task[cls.unique_task2name[task]]
305+
for name in cls.unique_task2name[task]:
306+
del cls.unique_name2task[name]
300307
del cls.unique_task2name[task]
301308
if task in cls.task2context:
302309
del cls.task2context[task]

0 commit comments

Comments
 (0)