12799b359SJoakim Söderberginclude(CheckCSourceRuns) 22799b359SJoakim Söderberg 32799b359SJoakim Söderbergcheck_c_source_runs( 42799b359SJoakim Söderberg" 52799b359SJoakim Söderberg#include <sys/types.h> 62799b359SJoakim Söderberg#include <sys/time.h> 72799b359SJoakim Söderberg#include <sys/event.h> 82799b359SJoakim Söderberg#include <stdio.h> 92799b359SJoakim Söderberg#include <unistd.h> 102799b359SJoakim Söderberg#include <fcntl.h> 112799b359SJoakim Söderberg 122799b359SJoakim Söderbergint 132799b359SJoakim Söderbergmain(int argc, char **argv) 142799b359SJoakim Söderberg{ 152799b359SJoakim Söderberg int kq; 162799b359SJoakim Söderberg int n; 172799b359SJoakim Söderberg int fd[2]; 182799b359SJoakim Söderberg struct kevent ev; 192799b359SJoakim Söderberg struct timespec ts; 20*9c720b70SCarlo Marcelo Arenas Belón char buf[80000]; 212799b359SJoakim Söderberg 222799b359SJoakim Söderberg if (pipe(fd) == -1) 232799b359SJoakim Söderberg exit(1); 242799b359SJoakim Söderberg if (fcntl(fd[1], F_SETFL, O_NONBLOCK) == -1) 252799b359SJoakim Söderberg exit(1); 262799b359SJoakim Söderberg 272799b359SJoakim Söderberg while ((n = write(fd[1], buf, sizeof(buf))) == sizeof(buf)) 282799b359SJoakim Söderberg ; 292799b359SJoakim Söderberg 302799b359SJoakim Söderberg if ((kq = kqueue()) == -1) 312799b359SJoakim Söderberg exit(1); 322799b359SJoakim Söderberg 332799b359SJoakim Söderberg memset(&ev, 0, sizeof(ev)); 342799b359SJoakim Söderberg ev.ident = fd[1]; 352799b359SJoakim Söderberg ev.filter = EVFILT_WRITE; 362799b359SJoakim Söderberg ev.flags = EV_ADD | EV_ENABLE; 372799b359SJoakim Söderberg n = kevent(kq, &ev, 1, NULL, 0, NULL); 382799b359SJoakim Söderberg if (n == -1) 392799b359SJoakim Söderberg exit(1); 402799b359SJoakim Söderberg 412799b359SJoakim Söderberg read(fd[0], buf, sizeof(buf)); 422799b359SJoakim Söderberg 432799b359SJoakim Söderberg ts.tv_sec = 0; 442799b359SJoakim Söderberg ts.tv_nsec = 0; 452799b359SJoakim Söderberg n = kevent(kq, NULL, 0, &ev, 1, &ts); 462799b359SJoakim Söderberg if (n == -1 || n == 0) 472799b359SJoakim Söderberg exit(1); 482799b359SJoakim Söderberg 492799b359SJoakim Söderberg exit(0); 502799b359SJoakim Söderberg} 512799b359SJoakim Söderberg 522799b359SJoakim Söderberg" EVENT__HAVE_WORKING_KQUEUE) 53