osmo_io: Fix write_enable handling in iofd_txqueue
Enable write on first message in both iofd_txqueue_enqueue{,_front}(),
but only if the iofd is not closed.
Change-Id: I75827491bb9fe0c6d1e4a195ac434f049b1a6ba6
diff --git a/src/core/osmo_io.c b/src/core/osmo_io.c
index 253dfa2..4cef142 100644
--- a/src/core/osmo_io.c
+++ b/src/core/osmo_io.c
@@ -171,7 +171,7 @@
llist_add_tail(&msghdr->list, &iofd->tx_queue.msg_queue);
iofd->tx_queue.current_length++;
- if (iofd->tx_queue.current_length == 1)
+ if (iofd->tx_queue.current_length == 1 && !IOFD_FLAG_ISSET(iofd, IOFD_FLAG_CLOSED))
osmo_iofd_ops.write_enable(iofd);
return 0;
@@ -188,6 +188,9 @@
{
llist_add(&msghdr->list, &iofd->tx_queue.msg_queue);
iofd->tx_queue.current_length++;
+
+ if (iofd->tx_queue.current_length == 1 && !IOFD_FLAG_ISSET(iofd, IOFD_FLAG_CLOSED))
+ osmo_iofd_ops.write_enable(iofd);
}
/*! Dequeue a message from the front