Attempts at fixing timeout edge cases
This commit is contained in:
parent
dd924d600c
commit
98a280ce39
|
@ -58,8 +58,6 @@ class TaskScope:
|
|||
if not self.entry_point.done():
|
||||
self.timed_out = True
|
||||
await throw(self.entry_point, TimeoutError("timed out"))
|
||||
# Wait for the parent to exit or cancel us
|
||||
await wait(self.entry_point)
|
||||
|
||||
async def __aenter__(self):
|
||||
self.entry_point = await current_task()
|
||||
|
|
|
@ -582,10 +582,10 @@ class FIFOKernel:
|
|||
if not task.scope or task.scope.cancellable:
|
||||
self.paused.discard(task)
|
||||
self.io_release_task(task)
|
||||
self.run_ready.append(task)
|
||||
self.handle_errors(partial(task.throw, Cancelled(task)), task)
|
||||
if task.state != TaskState.CANCELLED:
|
||||
task.pending_cancellation = True
|
||||
self.run_ready.append(task)
|
||||
self.reschedule_running()
|
||||
|
||||
def throw(self, task, error):
|
||||
|
@ -595,7 +595,7 @@ class FIFOKernel:
|
|||
|
||||
task.pending_exception = error
|
||||
self.run_ready.appendleft(task)
|
||||
self.handle_errors(partial(task.throw, error), task)
|
||||
self.handle_errors(self.run_task_step)
|
||||
self.reschedule_running()
|
||||
|
||||
def handle_errors(self, func: Callable, task: Task | None = None):
|
||||
|
|
Reference in New Issue