From 74fb9d627ad16fd2773ff5a5e69b66bf9bcd467b Mon Sep 17 00:00:00 2001 From: Dmitry Simonenko Date: Fri, 18 Nov 2016 16:28:49 +0300 Subject: [PATCH] flint: pre-check cancel state for ft_write() --- lib/ft_iowrite.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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);