write_queue: Only pop the queue if it is not empty

It is possible that the queue is cleared after the select
and before the callback for writable is called. Check if
the list is not empty brefore taking an item out of it.
diff --git a/src/write_queue.c b/src/write_queue.c
index 618a8c0..7295569 100644
--- a/src/write_queue.c
+++ b/src/write_queue.c
@@ -39,16 +39,18 @@
 		struct msgb *msg;
 
 		fd->when &= ~BSC_FD_WRITE;
-		msg = msgb_dequeue(&queue->msg_queue);
-		if (!msg)
-			return -1;
 
-		--queue->current_length;
-		queue->write_cb(fd, msg);
-		msgb_free(msg);
+		/* the queue might have been emptied */
+		if (!llist_empty(&queue->msg_queue)) {
+			--queue->current_length;
 
-		if (!llist_empty(&queue->msg_queue))
-			fd->when |= BSC_FD_WRITE;
+			msg = msgb_dequeue(&queue->msg_queue);
+			queue->write_cb(fd, msg);
+			msgb_free(msg);
+
+			if (!llist_empty(&queue->msg_queue))
+				fd->when |= BSC_FD_WRITE;
+		}
 	}
 
 	return 0;