]> xenbits.xensource.com Git - libvirt.git/commitdiff
examples: Work around lack of mingw sigaction()
authorEric Blake <eblake@redhat.com>
Tue, 8 Jan 2019 19:46:48 +0000 (13:46 -0600)
committerEric Blake <eblake@redhat.com>
Tue, 8 Jan 2019 20:47:04 +0000 (14:47 -0600)
mingw lacks sigaction(); we were getting it from gnulib. But since
commit acf522e8 stopped linking examples against gnulib, we are
getting a build failure. Keep the examples standalone, and work
around mingw by using signal() instead.

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
examples/domtop/domtop.c
examples/object-events/event-test.c

index ada5a064fb01cc03bb991152bf3a60f21eefe077..008065c651de975bcb3486a7a11430315b29f74e 100644 (file)
@@ -266,10 +266,6 @@ do_top(virConnectPtr conn,
     int max_id = 0;
     int nparams = 0, then_nparams = 0, now_nparams = 0;
     virTypedParameterPtr then_params = NULL, now_params = NULL;
-    struct sigaction action_stop;
-
-    memset(&action_stop, 0, sizeof(action_stop));
-    action_stop.sa_handler = stop;
 
     /* Lookup the domain */
     if (!(dom = virDomainLookupByName(conn, dom_name))) {
@@ -295,8 +291,10 @@ do_top(virConnectPtr conn,
         goto cleanup;
     }
 
-    sigaction(SIGTERM, &action_stop, NULL);
-    sigaction(SIGINT, &action_stop, NULL);
+    /* The ideal program would use sigaction to set this handler, but
+     * this way is portable to mingw. */
+    signal(SIGTERM, stop);
+    signal(SIGINT, stop);
 
     run_top = true;
     while (run_top) {
index 0c99fb33e38dc7941d8c45fbd7ac3dec10862e52..fcf449247067bebb968e42c015e295f017dac5b5 100644 (file)
@@ -1147,13 +1147,8 @@ main(int argc, char **argv)
     virConnectPtr dconn = NULL;
     int callback1ret = -1;
     int callback16ret = -1;
-    struct sigaction action_stop;
     size_t i;
 
-    memset(&action_stop, 0, sizeof(action_stop));
-
-    action_stop.sa_handler = stop;
-
     if (argc > 1 && STREQ(argv[1], "--help")) {
         printf("%s uri\n", argv[0]);
         goto cleanup;
@@ -1184,8 +1179,10 @@ main(int argc, char **argv)
         goto cleanup;
     }
 
-    sigaction(SIGTERM, &action_stop, NULL);
-    sigaction(SIGINT, &action_stop, NULL);
+    /* The ideal program would use sigaction to set this handler, but
+     * this way is portable to mingw. */
+    signal(SIGTERM, stop);
+    signal(SIGINT, stop);
 
     printf("Registering event callbacks\n");