qemu/include/io
Daniel P. Berrangé 68e031345a io: separate freeing of tasks from marking them as complete
The original design of QIOTask was intended to simplify lifecycle
management by automatically freeing it when the task was marked as
complete. This overlooked the fact that when a QIOTask is used in
combination with a GSource, there may be times when the source
callback is never invoked. This is typically when a GSource is
released before any I/O event arrives. In such cases it is not
desirable to mark a QIOTask as complete, but it still needs to be
freed. To satisfy this, the task must be released manually.

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 163cd0ae11)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2026-03-11 16:42:36 +03:00
..
channel-buffer.h io: Fix Lesser GPL version number 2020-10-27 16:48:49 +01:00
channel-command.h io/command: implement support for win32 2022-10-12 19:22:01 +04:00
channel-file.h io: Introduce qio_channel_file_new_dupfd 2024-03-12 15:22:23 -04:00
channel-null.h io: add a QIOChannelNull equivalent to /dev/null 2022-06-22 18:11:21 +01:00
channel-socket.h qio: Provide accessor around QIONetListener->sioc 2025-11-13 10:54:44 -06:00
channel-tls.h io: tls: Add qio_channel_tls_bye 2025-02-14 15:19:03 -03:00
channel-util.h io: follow coroutine AioContext in qio_channel_yield() 2023-09-07 20:32:11 -05:00
channel-watch.h io: Fix Lesser GPL version number 2020-10-27 16:48:49 +01:00
channel-websock.h io: fix use after free in websocket handshake code 2025-10-24 13:04:31 +01:00
channel.h mem + migration pull for 10.2 2025-11-04 16:19:35 +01:00
dns-resolver.h io: Fix Lesser GPL version number 2020-10-27 16:48:49 +01:00
net-listener.h qio: Add QIONetListener API for using AioContext 2025-11-13 10:58:26 -06:00
task.h io: separate freeing of tasks from marking them as complete 2026-03-11 16:42:36 +03:00