Skip to content

Commit d49d280

Browse files
committed
fix: canceling pending task
1 parent 892389a commit d49d280

2 files changed

Lines changed: 9 additions & 11 deletions

File tree

src/duron/_core/invoke.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,7 @@
3333
from duron._loop import EventLoop, create_loop
3434
from duron.codec import Codec, JSONValue
3535
from duron.log import derive_id, is_entry, random_id, set_annotations
36-
from duron.tracing import (
37-
Tracer,
38-
current_tracer,
39-
)
36+
from duron.tracing import Tracer, current_tracer
4037
from duron.tracing._span import NULL_SPAN
4138
from duron.typing import Unspecified, inspect_function
4239

@@ -361,12 +358,13 @@ async def close(self) -> None:
361358
await self._task_manager.close()
362359

363360
def now(self) -> int:
364-
if self._running:
365-
t = time.time_ns()
366-
t //= 1_000
367-
self._now = max(self._now + 1, t)
368361
return self._now
369362

363+
def tick_realtime(self) -> None:
364+
t = time.time_ns()
365+
t //= 1_000
366+
self._now = max(self._now + 1, t)
367+
370368
async def resume(self) -> None:
371369
self._lease = await self._log.acquire_lease()
372370
recvd_msgs: set[str] = set()
@@ -400,6 +398,7 @@ async def run(self) -> object:
400398
await self._send_traces()
401399
else:
402400
await waitset.block(self.now())
401+
self.tick_realtime()
403402

404403
# cleanup
405404
self._loop.close()
@@ -409,8 +408,9 @@ async def run(self) -> object:
409408
return self._task.result()
410409

411410
async def _step(self) -> WaitSet | None:
411+
self._loop.tick(self.now())
412+
412413
while True:
413-
self._loop.tick(self.now())
414414
result = self._loop.poll_completion(self._task)
415415
if result is None:
416416
return result

src/duron/_loop.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -296,8 +296,6 @@ def post_completion(
296296
token = _task_ctx.set(_TaskCtx(parent_id=tid))
297297
if exception is None:
298298
_ = self.call_soon(op.set_result, result)
299-
elif type(exception) is asyncio.CancelledError:
300-
_ = self.call_soon(op.cancel)
301299
else:
302300
_ = self.call_soon(op.set_exception, exception)
303301
_task_ctx.reset(token)

0 commit comments

Comments
 (0)