From: Bin Meng <bmeng.cn@gmail.com>
To: qemu-devel@nongnu.org
Cc: "Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Bin Meng" <bin.meng@windriver.com>,
"Laurent Vivier" <lvivier@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Thomas Huth" <thuth@redhat.com>
Subject: [PATCH v5 10/18] tests/qtest: libqtest: Install signal handler via signal()
Date: Thu, 6 Oct 2022 23:19:19 +0800 [thread overview]
Message-ID: <20221006151927.2079583-11-bmeng.cn@gmail.com> (raw)
In-Reply-To: <20221006151927.2079583-1-bmeng.cn@gmail.com>
From: Bin Meng <bin.meng@windriver.com>
At present the codes uses sigaction() to install signal handler with
a flag SA_RESETHAND. Such usage can be covered by the signal() API
that is a simplified interface to the general sigaction() facility.
Update to use signal() to install the signal handler, as it is
available on Windows which we are going to support.
Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
Changes in v5:
- Replace sighandler_t with its actual definition, since it is not
available on BSD hosts
tests/qtest/libqtest.c | 14 +++-----------
1 file changed, 3 insertions(+), 11 deletions(-)
diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c
index 8228262938..54e5f64f20 100644
--- a/tests/qtest/libqtest.c
+++ b/tests/qtest/libqtest.c
@@ -66,7 +66,7 @@ struct QTestState
};
static GHookList abrt_hooks;
-static struct sigaction sigact_old;
+static void (*sighandler_old)(int);
static int qtest_query_target_endianness(QTestState *s);
@@ -179,20 +179,12 @@ static void sigabrt_handler(int signo)
static void setup_sigabrt_handler(void)
{
- struct sigaction sigact;
-
- /* Catch SIGABRT to clean up on g_assert() failure */
- sigact = (struct sigaction){
- .sa_handler = sigabrt_handler,
- .sa_flags = SA_RESETHAND,
- };
- sigemptyset(&sigact.sa_mask);
- sigaction(SIGABRT, &sigact, &sigact_old);
+ sighandler_old = signal(SIGABRT, sigabrt_handler);
}
static void cleanup_sigabrt_handler(void)
{
- sigaction(SIGABRT, &sigact_old, NULL);
+ signal(SIGABRT, sighandler_old);
}
static bool hook_list_is_empty(GHookList *hook_list)
--
2.34.1
next prev parent reply other threads:[~2022-10-06 16:23 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-06 15:19 [PATCH v5 00/18] tests/qtest: Enable running qtest on Windows Bin Meng
2022-10-06 15:19 ` [PATCH v5 01/18] semihosting/arm-compat-semi: Avoid using hardcoded /tmp Bin Meng
2022-10-06 15:19 ` [PATCH v5 02/18] tcg: " Bin Meng
2022-10-06 15:19 ` [PATCH v5 03/18] util/qemu-sockets: Use g_get_tmp_dir() to get the directory for temporary files Bin Meng
2022-10-06 15:19 ` [PATCH v5 04/18] tests/qtest: migration-test: Avoid using hardcoded /tmp Bin Meng
2022-10-25 23:44 ` Richard Henderson
2022-10-26 0:44 ` Bin Meng
2022-10-26 1:25 ` Richard Henderson
2022-10-06 15:19 ` [PATCH v5 05/18] block/vvfat: Unify the mkdir() call Bin Meng
2022-10-06 15:19 ` [PATCH v5 06/18] fsdev/virtfs-proxy-helper: Use g_mkdir() Bin Meng
2022-10-06 15:19 ` [PATCH v5 07/18] hw/usb: dev-mtp: " Bin Meng
2022-10-06 15:19 ` [PATCH v5 08/18] accel/qtest: Support qtest accelerator for Windows Bin Meng
2022-10-11 12:32 ` Thomas Huth
2022-10-11 12:37 ` Bin Meng
2022-10-06 15:19 ` [PATCH v5 09/18] tests/qtest: Use send/recv for socket communication Bin Meng
2022-10-18 16:47 ` Alex Bennée
2022-10-19 7:09 ` Bin Meng
2022-10-19 9:28 ` Thomas Huth
2022-10-18 17:09 ` Peter Maydell
2022-10-18 17:14 ` Daniel P. Berrangé
2022-10-06 15:19 ` Bin Meng [this message]
2022-10-11 14:14 ` [PATCH v5 10/18] tests/qtest: libqtest: Install signal handler via signal() Thomas Huth
2022-10-11 14:54 ` Bin Meng
2022-10-06 15:19 ` [PATCH v5 11/18] tests/qtest: Support libqtest to build and run on Windows Bin Meng
2022-10-12 7:43 ` Marc-André Lureau
2022-10-06 15:19 ` [PATCH v5 12/18] tests/qtest: migration-test: Make sure QEMU process "to" exited after migration is canceled Bin Meng
2022-10-12 7:57 ` Marc-André Lureau
2022-10-06 15:19 ` [PATCH v5 13/18] tests/qtest: libqtest: Correct the timeout unit of blocking receive calls for win32 Bin Meng
2022-10-06 15:19 ` [PATCH v5 14/18] io/channel-watch: Drop a superfluous '#ifdef WIN32' Bin Meng
2022-10-06 15:19 ` [PATCH v5 15/18] io/channel-watch: Drop the unnecessary cast Bin Meng
2022-10-06 15:19 ` [PATCH v5 16/18] io/channel-watch: Fix socket watch on Windows Bin Meng
2022-10-06 15:19 ` [PATCH v5 17/18] .gitlab-ci.d/windows.yml: Increase the timeout to 90 minutes Bin Meng
2022-10-07 9:57 ` Marc-André Lureau
2022-10-08 1:11 ` Bin Meng
2022-10-11 14:41 ` Thomas Huth
2022-10-11 15:10 ` Bin Meng
2022-10-06 15:19 ` [PATCH v5 18/18] tests/qtest: Enable qtest build on Windows Bin Meng
2022-10-06 20:33 ` [PATCH v5 00/18] tests/qtest: Enable running qtest " Alex Bennée
2022-10-07 5:31 ` Bin Meng
2022-10-17 15:00 ` Bin Meng
2022-10-17 16:40 ` Christian Schoenebeck
2022-10-18 15:59 ` Alex Bennée
2022-10-19 7:07 ` Bin Meng
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221006151927.2079583-11-bmeng.cn@gmail.com \
--to=bmeng.cn@gmail.com \
--cc=bin.meng@windriver.com \
--cc=lvivier@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).