summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc-André Lureau2022-04-20 15:26:22 +0200
committerMarc-André Lureau2022-04-21 15:09:09 +0200
commitc267d750d87529de9371789109047b8d68d5477f (patch)
treefc755261d386fe42774c70ed6c4affd7edc0f25a
parentutil: replace qemu_get_local_state_pathname() (diff)
downloadqemu-c267d750d87529de9371789109047b8d68d5477f.tar.gz
qemu-c267d750d87529de9371789109047b8d68d5477f.tar.xz
qemu-c267d750d87529de9371789109047b8d68d5477f.zip
qga: remove need for QEMU atomic.h
Since the introduction of guest-exec in/out/err redirections in commit a1853dca74 ("qga: guest-exec simple stdin/stdout/stderr redirection"), some execution state variables are handled with atomic ops. However, there are no threads involved in this code (and glib sources are dispatched in the same thread), and no other obvious reason to use them. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20220420132624.2439741-40-marcandre.lureau@redhat.com>
-rw-r--r--qga/commands.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/qga/commands.c b/qga/commands.c
index 690da0073d..7ff551d092 100644
--- a/qga/commands.c
+++ b/qga/commands.c
@@ -18,7 +18,6 @@
#include "qapi/qmp/qerror.h"
#include "qemu/base64.h"
#include "qemu/cutils.h"
-#include "qemu/atomic.h"
#include "commands-common.h"
/* Maximum captured guest-exec out_data/err_data - 16MB */
@@ -162,13 +161,12 @@ GuestExecStatus *qmp_guest_exec_status(int64_t pid, Error **errp)
ges = g_new0(GuestExecStatus, 1);
- bool finished = qatomic_mb_read(&gei->finished);
+ bool finished = gei->finished;
/* need to wait till output channels are closed
* to be sure we captured all output at this point */
if (gei->has_output) {
- finished = finished && qatomic_mb_read(&gei->out.closed);
- finished = finished && qatomic_mb_read(&gei->err.closed);
+ finished &= gei->out.closed && gei->err.closed;
}
ges->exited = finished;
@@ -270,7 +268,7 @@ static void guest_exec_child_watch(GPid pid, gint status, gpointer data)
(int32_t)gpid_to_int64(pid), (uint32_t)status);
gei->status = status;
- qatomic_mb_set(&gei->finished, true);
+ gei->finished = true;
g_spawn_close_pid(pid);
}
@@ -326,7 +324,7 @@ static gboolean guest_exec_input_watch(GIOChannel *ch,
done:
g_io_channel_shutdown(ch, true, NULL);
g_io_channel_unref(ch);
- qatomic_mb_set(&p->closed, true);
+ p->closed = true;
g_free(p->data);
return false;
@@ -380,7 +378,7 @@ static gboolean guest_exec_output_watch(GIOChannel *ch,
close:
g_io_channel_shutdown(ch, true, NULL);
g_io_channel_unref(ch);
- qatomic_mb_set(&p->closed, true);
+ p->closed = true;
return false;
}