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