diff --git a/lib/tcp_io.c b/lib/tcp_io.c index 0080386e..dc2bae70 100644 --- a/lib/tcp_io.c +++ b/lib/tcp_io.c @@ -387,6 +387,10 @@ static void write_cb(socket_t sock, void* arg) { if (!tc->write_buf) { DEBUG_TRACE(DEBUG_CATEGORY_SOCKET, "tcp_io: write_cb flushed fd=%d wmon=%d (resume WQ cb)", (int)tc->sock, tc->write_monitor); queue_resume_callback(tc->write_queue); + if (tc->write_queue->waiter_defer && tc->write_monitor) { + uasync_set_socket_write(tc->ua, tc->socket_id, 0); + tc->write_monitor = 0; + } } }