+static void channel_poll(struct utcp_connection *connection, size_t len);
+
+static void aio_fd_poll(event_loop_t *loop, void *data, int flags) {
+ (void)flags;
+ meshlink_channel_t *channel = data;
+ meshlink_aio_buffer_t *aio = channel->aio_send;
+ assert(aio);
+
+ io_set(loop, &aio->io, 0);
+
+ utcp_set_poll_cb(channel->c, channel_poll);
+ size_t left = utcp_get_rcvbuf_free(channel->c);
+
+ if(left) {
+ channel_poll(channel->c, left);
+ }
+}
+