diff options
author | Marc-André Lureau | 2022-10-06 13:36:55 +0200 |
---|---|---|
committer | Marc-André Lureau | 2022-10-12 17:22:01 +0200 |
commit | a95570e3e4d61a7c8e527e512246665c51caa6f4 (patch) | |
tree | 335c5e60b5908261038044db448fb4660b3abbb9 /include | |
parent | tests/channel-helper: set blocking in main thread (diff) | |
download | qemu-a95570e3e4d61a7c8e527e512246665c51caa6f4.tar.gz qemu-a95570e3e4d61a7c8e527e512246665c51caa6f4.tar.xz qemu-a95570e3e4d61a7c8e527e512246665c51caa6f4.zip |
io/command: use glib GSpawn, instead of open-coding fork/exec
Simplify qio_channel_command_new_spawn() with GSpawn API. This will
allow to build for WIN32 in the following patches.
As pointed out by Daniel Berrangé: there is a change in semantics here
too. The current code only touches stdin/stdout/stderr. Any other FDs
which do NOT have O_CLOEXEC set will be inherited. With the new code,
all FDs except stdin/out/err will be explicitly closed, because we don't
set the flag G_SPAWN_LEAVE_DESCRIPTORS_OPEN. The only place we use
QIOChannelCommand today is the migration exec: protocol, and that is
only declared to use stdin/stdout.
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20221006113657.2656108-5-marcandre.lureau@redhat.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/io/channel-command.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/io/channel-command.h b/include/io/channel-command.h index 305ac1d280..8dc58273c0 100644 --- a/include/io/channel-command.h +++ b/include/io/channel-command.h @@ -41,7 +41,7 @@ struct QIOChannelCommand { QIOChannel parent; int writefd; int readfd; - pid_t pid; + GPid pid; }; |