lkml.org 
[lkml]   [2001]   [Aug]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: 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/

    \
     
     \ /
      Last update: 2005-03-22 12:57    [W:0.031 / U:61.928 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site