indefinitely. Janet offers <code class="mendoza-code">ev/cancel</code> to interrupt and cancel an ongoing IO operation. This will cause the canceled
task to be resumed but immediately error. From the point of view of the canceled task, it will look as though the last function that yielded to event loop raised an error.
</p>
<p>Macros like <code class="mendoza-code">try</code> and <code class="mendoza-code">protect</code> will continue to work just as if the cancellation error was any other error.
</p>
<pre 