diff --git a/lib/ft_iowrite.c b/lib/ft_iowrite.c index db9ff7b2..d38d1174 100644 --- a/lib/ft_iowrite.c +++ b/lib/ft_iowrite.c @@ -47,11 +47,14 @@ FLINT_API int ft_write(ftio_t iop, char *buf, int size, uint64_t time_ms) { ftio *io = iop; + ftfiber *current = ft_current(io->f); + if (ft_fiber_is_cancel(current)) + return -ECANCELED; if (!io->connected || io->write_fiber) return -1; io->write_status = 0; io->write_timeout = 0; - io->write_fiber = ft_current(io->f); + io->write_fiber = current; ft_io_timer_start(&io->connect_timer, ft_io_write_timeout_cb, time_ms);