Replace qemu_pipe() with g_unix_open_pipe()

GLib g_unix_open_pipe() is essentially like qemu_pipe(), available since
2.30.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Marc-André Lureau 2022-03-29 15:21:00 +04:00
parent ad24b679d2
commit a7241974ce
4 changed files with 4 additions and 29 deletions

View File

@ -547,10 +547,6 @@ static inline void qemu_timersub(const struct timeval *val1,
ssize_t qemu_write_full(int fd, const void *buf, size_t count) ssize_t qemu_write_full(int fd, const void *buf, size_t count)
G_GNUC_WARN_UNUSED_RESULT; G_GNUC_WARN_UNUSED_RESULT;
#ifndef _WIN32
int qemu_pipe(int pipefd[2]);
#endif
void qemu_set_cloexec(int fd); void qemu_set_cloexec(int fd);
/* Return a dynamically allocated directory path that is appropriate for storing /* Return a dynamically allocated directory path that is appropriate for storing

View File

@ -909,13 +909,14 @@ int main(int argc, char **argv)
if ((device && !verbose) || fork_process) { if ((device && !verbose) || fork_process) {
#ifndef WIN32 #ifndef WIN32
g_autoptr(GError) err = NULL;
int stderr_fd[2]; int stderr_fd[2];
pid_t pid; pid_t pid;
int ret; int ret;
if (qemu_pipe(stderr_fd) < 0) { if (!g_unix_open_pipe(stderr_fd, FD_CLOEXEC, &err)) {
error_report("Error setting up communication pipe: %s", error_report("Error setting up communication pipe: %s",
strerror(errno)); err->message);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }

View File

@ -49,7 +49,7 @@ int event_notifier_init(EventNotifier *e, int active)
if (errno != ENOSYS) { if (errno != ENOSYS) {
return -errno; return -errno;
} }
if (qemu_pipe(fds) < 0) { if (!g_unix_open_pipe(fds, FD_CLOEXEC, NULL)) {
return -errno; return -errno;
} }
if (!g_unix_set_fd_nonblocking(fds[0], true, NULL)) { if (!g_unix_set_fd_nonblocking(fds[0], true, NULL)) {

View File

@ -274,28 +274,6 @@ void qemu_set_cloexec(int fd)
assert(f != -1); assert(f != -1);
} }
/*
* Creates a pipe with FD_CLOEXEC set on both file descriptors
*/
int qemu_pipe(int pipefd[2])
{
int ret;
#ifdef CONFIG_PIPE2
ret = pipe2(pipefd, O_CLOEXEC);
if (ret != -1 || errno != ENOSYS) {
return ret;
}
#endif
ret = pipe(pipefd);
if (ret == 0) {
qemu_set_cloexec(pipefd[0]);
qemu_set_cloexec(pipefd[1]);
}
return ret;
}
char * char *
qemu_get_local_state_dir(void) qemu_get_local_state_dir(void)
{ {