Hi list. I suffer from this bug: http://bugs.winehq.org/show_bug.cgi?id=27014
In wine sources there're not so many places where exec(3) family is
used. In some places SIGCHLD and SIGPIPE are restored to default
before calling exec(), in others they aren't. What's the difference?

Can anyone explain me the why SIGCHLD not restored to default
before calling execvp() here:
http://source.winehq.org/source/libs/port/spawn.c?v=wine-1.3.19#L42
    int spawnvp(int mode, const char *cmdname, const char *const argv[])
    {
    ...
         if (mode == _P_OVERLAY)
         {
             execvp(cmdname, (char **)argv);
             /* if we get here it failed */
     #ifdef ENOTSUP
             if (errno != ENOTSUP)  /* exec fails on MacOS if the process has 
multiple threads */
     #endif
                 return -1;
         }

Because it's not forked and if execvp() fails, we end up with the
default handler?



Reply via email to