Files
ftmemsim-valgrind/tests/blocked_syscall.c
Julian Seward 72a784f3b1 Initial revision
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2
2002-03-22 01:27:54 +00:00

33 lines
650 B
C

#include <stdio.h>
#include <unistd.h>
#include <assert.h>
#include <signal.h>
int fds[2];
void the_sighandler ( int signo )
{
int nw;
// assert(signo == SIGUSR1);
// printf("sighandler running; should unblock now\n");
nw = write(fds[1], "zzz", 1);
// assert(nw == 1);
}
int main ( void )
{
char buf[10];
int res, nr;
void* oldsh = signal(SIGUSR1, the_sighandler);
assert(oldsh != SIG_ERR);
printf("pid = %d\n", getpid());
res = pipe(fds);
assert (res == 0);
printf("doing read(); this should block\n");
nr = read(fds[0], buf, 1);
/* blocks */
printf("read returned %d\n", nr);
return 0;
}