jcs's openbsd hax
openbsd
1/* $OpenBSD: process_kill.c,v 1.1 2012/03/07 22:01:29 fgsch Exp $ */
2/*
3 * Federico G. Schwindt <fgsch@openbsd.org>, 2012. Public Domain.
4 */
5
6#include <pthread.h>
7#include <signal.h>
8#include <stdlib.h>
9#include <unistd.h>
10#include "test.h"
11
12void
13deadlock(int sig)
14{
15 PANIC("deadlock detected");
16}
17
18void
19handler(int sig)
20{
21
22}
23
24void *
25killer(void *arg)
26{
27 sleep(2);
28 CHECKe(kill(getpid(), SIGUSR1));
29 return (NULL);
30}
31
32int
33main(int argc, char **argv)
34{
35 pthread_t t;
36
37 ASSERT(signal(SIGALRM, deadlock) != SIG_ERR);
38 ASSERT(signal(SIGUSR1, handler) != SIG_ERR);
39 CHECKr(pthread_create(&t, NULL, killer, NULL));
40 alarm(5);
41 sleep(15);
42 CHECKr(pthread_join(t, NULL));
43 SUCCEED;
44}