summaryrefslogtreecommitdiffstats
path: root/packages/Python/lldbsuite/test/functionalities/signal/raise/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'packages/Python/lldbsuite/test/functionalities/signal/raise/main.c')
-rw-r--r--packages/Python/lldbsuite/test/functionalities/signal/raise/main.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/packages/Python/lldbsuite/test/functionalities/signal/raise/main.c b/packages/Python/lldbsuite/test/functionalities/signal/raise/main.c
new file mode 100644
index 0000000..8827174
--- /dev/null
+++ b/packages/Python/lldbsuite/test/functionalities/signal/raise/main.c
@@ -0,0 +1,42 @@
+#include <signal.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+void handler(int signo)
+{
+ _exit(signo);
+}
+
+int main (int argc, char *argv[])
+{
+#ifndef __APPLE__
+ // Real time signals not supported on apple platforms.
+ if (signal(SIGRTMIN, handler) == SIG_ERR)
+ {
+ perror("signal(SIGRTMIN)");
+ return 1;
+ }
+#endif
+
+ if (argc < 2)
+ {
+ puts("Please specify a signal to raise");
+ return 1;
+ }
+
+ if (strcmp(argv[1], "SIGSTOP") == 0)
+ raise(SIGSTOP);
+#ifndef __APPLE__
+ else if (strcmp(argv[1], "SIGRTMIN") == 0)
+ raise(SIGRTMIN);
+#endif
+ else
+ {
+ printf("Unknown signal: %s\n", argv[1]);
+ return 1;
+ }
+
+ return 0;
+}
+
OpenPOWER on IntegriCloud