2 #include <sys/socket.h>
14 #define READ_BLOCK_TIME 5 /* unit: sec */
17 sig_alarm(int sig __unused)
19 #define PANIC_STRING "read blocks\n"
21 write(2, PANIC_STRING, strlen(PANIC_STRING));
32 if (socketpair(AF_UNIX, SOCK_DGRAM | SOCK_NONBLOCK, 0, s) < 0)
33 err(1, "socketpair failed");
35 memset(&it, 0, sizeof(it));
36 it.it_value.tv_sec = READ_BLOCK_TIME;
37 if (signal(SIGALRM, sig_alarm) == SIG_ERR)
38 err(1, "signal failed");
39 if (setitimer(ITIMER_REAL, &it, NULL) < 0)
40 err(1, "setitimer failed");
42 n = read(s[0], &buf, 1);
45 if (error != EAGAIN) {
46 warnx("invalid errno %d", error);
54 n = read(s[1], &buf, 1);
57 if (error != EAGAIN) {
58 warnx("invalid errno %d", error);
66 fprintf(stderr, "passed\n");