Changeset 2195 for trunk


Ignore:
Timestamp:
Jul 3, 2005, 10:56:24 AM (20 years ago)
Author:
bird
Message:

Fixed some waitid() and waitpid() problems related to stopping and resuming children.

Location:
trunk/src/emx
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/emx/ChangeLog.LIBC

    • Property cvs2svn:cvs-rev changed from 1.93 to 1.94
    r2194 r2195  
    2222        o Updated features.h and sys/gnu/cdefs.h with more recent versions from cvs.
    2323        o Ported from GLIBC 2.3.x CVS.
     24        o Fixed some waitid() and waitpid() problems related to stopping and resuming children.
    2425    - libcrypt:
    2526        o Created stub library.
  • trunk/src/emx/include/sys/wait.h

    • Property cvs2svn:cvs-rev changed from 1.6 to 1.7
    r2194 r2195  
    5656#define WIFSTOPPED(x)   (_WSTATUS(x) == _WSTOPPED)
    5757#define WSTOPSIG(x)     (_W_INT(x) >> 8)
    58 #define WIFSIGNALED(x)  (_WSTATUS(x) != _WSTOPPED && _WSTATUS(x) != 0)
     58#define WIFSIGNALED(x)  (_WSTATUS(x) != 0 && !WIFSTOPPED(x) && !WIFCONTINUED(x)) /* bird: made GLIBC tests happy. */
    5959#define WTERMSIG(x)     (_WSTATUS(x))
    6060#define WIFEXITED(x)    (_WSTATUS(x) == 0)
  • trunk/src/emx/src/lib/process/wait4.c

    • Property cvs2svn:cvs-rev changed from 1.4 to 1.5
    r2194 r2195  
    119119            case CLD_TRAPPED:   iStatus = W_STOPCODE(SigInfo.si_status); break;
    120120            case CLD_STOPPED:   iStatus = W_STOPCODE(SigInfo.si_status); break;
    121             case CLD_CONTINUED: iStatus = W_STOPCODE(SigInfo.si_status); break;
     121            case CLD_CONTINUED: iStatus = W_EXITCODE(0, SigInfo.si_status); break;
    122122
    123123        }
  • trunk/src/emx/src/lib/sys/signals.c

    • Property cvs2svn:cvs-rev changed from 1.27 to 1.28
    r2194 r2195  
    22752275    SigInfo.si_pid      = _sys_pid;
    22762276    SigInfo.si_code     = CLD_STOPPED;
     2277    SigInfo.si_status   = iSignalNo;
    22772278    SigInfo.si_flags    = __LIBC_SI_INTERNAL;
    22782279    __libc_back_signalSendPidOther(_sys_ppid, SIGCHLD, &SigInfo);
     
    22912292/**
    22922293 * Resume the process (job control emulation).
    2293  *
    2294  * @param   iSignalNo   Signal causing the termination.
    22952294 */
    22962295static int signalJobResume(void)
     
    23052304    SigInfo.si_pid      = _sys_pid;
    23062305    SigInfo.si_code     = CLD_CONTINUED;
     2306    SigInfo.si_status   = SIGCONT;
    23072307    SigInfo.si_flags    = __LIBC_SI_INTERNAL;
    23082308    __libc_back_signalSendPidOther(_sys_ppid, SIGCHLD, &SigInfo);
Note: See TracChangeset for help on using the changeset viewer.