Timeout handling limits in Vala async methods: cooperative cancellation cannot interrupt synchronous sections
When using Vala’s async methods with a GCancellable to implement a timeout, the cancellation check occurs only at yield points ( await statements). If the async method contains a long-running synchronous loop or computation, firing the timeout source will set the cancellable flag, but the method cannot be interrupted until it reaches the next yield point. Th