Messages in this thread | | | Date | Tue, 14 Aug 2001 09:28:49 +0200 | From | christophe barbé <> | Subject | Re: ptrace(), fork(), sleep(), exit(), SIGCHLD |
| |
Have you receive off-line answers? I guess that it's certainly more a strace issue and that it's perhaps 'trivial' for most people here. But I would be interesting in knowing the why behind this.
Christophe
Le lun, 13 aoû 2001 10:29:32, Bruce Janson a écrit : > Hi, > The following program behaves incorrectly when traced: > > $ uname -a > Linux dependo 2.4.2-2 #1 Sun Apr 8 19:37:14 EDT 2001 i686 unknown > $ cc -v > Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs > gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-81) > $ strace -V > strace -- version 4.2 > $ cat t.c > main() > { > switch (fork()) > { > case -1: > write(2, "fork\n", 5); > break; > > case 0: > usleep(1000000); > break; > > default: > if (usleep(5000000) == -1) > write(2, "wrong\n", 6); > break; > } > > exit(0); > } > $ cc t.c > $ time ./a.out > > real 0m5.011s > user 0m0.000s > sys 0m0.000s > $ time strace -o /dev/null ./a.out > wrong > > real 0m1.025s > user 0m0.010s > sys 0m0.010s > $ > > The problem appears to be that, when traced, the child process' exit() > interrupts the parent's usleep() with a SIGCHLD, the latter returning > EINTR. > It also fails in the same way under Linux 2.2.16 and 2.2.19. > > What am I missing? > - > To unsubscribe from this list: send the line "unsubscribe linux-kernel" > in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > -- Christophe Barbé Software Engineer - christophe.barbe@lineo.fr Lineo France - Lineo High Availability Group 42-46, rue Médéric - 92110 Clichy - France phone (33).1.41.40.02.12 - fax (33).1.41.40.02.01 http://www.lineo.com - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |