Skip to content

Commit 683b532

Browse files
.
1 parent 37453bb commit 683b532

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

.github/workflows/run_tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
strategy:
2020
max-parallel: 4
2121
matrix:
22-
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
22+
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
2323

2424
steps:
2525
- uses: actions/checkout@v5

src/pyartnet/base/background_task.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from __future__ import annotations
22

33
import logging
4-
from asyncio import Task, create_task, sleep
4+
from asyncio import Task, create_task, current_task, sleep
55
from time import monotonic
66
from traceback import format_exc
77
from typing import Any, Callable, Coroutine, Final
@@ -40,16 +40,17 @@ def start(self) -> None:
4040
return None
4141

4242
def cancel(self) -> None:
43-
if self.task is None:
43+
if (task := self.task) is None:
4444
return None
4545

46-
self.task.cancel()
4746
self.task = None
47+
task.cancel()
48+
return None
4849

4950
async def coro_wrap(self) -> None:
5051
log.debug(f'Started {self.name}')
5152
task = self.task
52-
assert task is not None
53+
assert task is current_task()
5354

5455
try:
5556
await self.coro()
@@ -65,7 +66,7 @@ class ExceptionIgnoringTask(SimpleBackgroundTask):
6566
async def coro_wrap(self) -> None:
6667
log.debug(f'Started {self.name}')
6768
task = self.task
68-
assert task is not None
69+
assert task is current_task()
6970

7071
wait = 0
7172

@@ -80,10 +81,7 @@ async def coro_wrap(self) -> None:
8081

8182
# simple sleep logic with an increasing timeout
8283
time_to_exception = monotonic() - start
83-
if time_to_exception < 16 or time_to_exception < wait:
84-
wait = max(2, wait * 2)
85-
else:
86-
wait = 0
84+
wait = max(2, wait * 2) if time_to_exception < 16 or time_to_exception < wait else 0
8785

8886
log.debug(f'Retry in {wait:d} seconds')
8987
finally:

0 commit comments

Comments
 (0)