Changeset 1619 for trunk/src


Ignore:
Timestamp:
Nov 7, 2004, 3:53:53 PM (21 years ago)
Author:
bird
Message:

Debugging signals.

Location:
trunk/src/emx/src/lib/sys
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/emx/src/lib/sys/b_threadInit.c

    • Property cvs2svn:cvs-rev changed from 1.5 to 1.6
    r1618 r1619  
    5151     * Copy signal stuff.
    5252     */
    53     pThrd->SigSetBlocked    = pParentThrd->SigSetBlocked;
    54     /** @todo Inheriting fSigSetBlockedOld doesn't make sense! */
    55     if (pParentThrd->fSigSetBlockedOld)
     53    if (pParentThrd)
    5654    {
    57         pThrd->SigSetBlockedOld     = pParentThrd->SigSetBlockedOld;
    58         pThrd->fSigSetBlockedOld    = pParentThrd->fSigSetBlockedOld;
     55        pThrd->SigSetBlocked    = pParentThrd->SigSetBlocked;
     56        if (pParentThrd->fSigSetBlockedOld)
     57        {
     58            pThrd->SigSetBlockedOld     = pParentThrd->SigSetBlockedOld;
     59            pThrd->fSigSetBlockedOld    = pParentThrd->fSigSetBlockedOld;
     60        }
    5961    }
    6062
  • trunk/src/emx/src/lib/sys/sharedpm.c

    • Property cvs2svn:cvs-rev changed from 1.15 to 1.16
    r1618 r1619  
    260260    __LIBC_PSPMINHERIT      pRet = NULL;
    261261    __LIBC_SPMXCPTREGREC    RegRec;
     262    errno = 0;                          /* init thread outside the sem. */
    262263    if (!spmRequestMutexErrno(&RegRec))
    263264    {
  • trunk/src/emx/src/lib/sys/signals.c

    • Property cvs2svn:cvs-rev changed from 1.5 to 1.6
    r1618 r1619  
    16281628         */
    16291629        siginfo_t SigInfo;
    1630         if (iSignalNo && __SIGSET_ISSET(&pThrd->SigSetPending, iSignalNo))
    1631             iSignalNo = __libc_back_signalAccept(pThrd, iSignalNo, &SigDeliver, &SigInfo);
    1632         LIBC_ASSERTM(__SIGSET_SIG_VALID(iSignalNo), "iSignalNo=%d\n", iSignalNo);
     1630        iSignalNo = __libc_back_signalAccept(pThrd, iSignalNo, &SigDeliver, &SigInfo);
     1631        if (!__SIGSET_SIG_VALID(iSignalNo))
     1632        {
     1633            LIBC_ASSERTM_FAILED("iSignalNo=%d\n", iSignalNo);
     1634            break;
     1635        }
    16331636        struct sigaction SigAction = gaSignalActions[iSignalNo];
    16341637
     
    17421745            if (gafSignalProperties[iSignalNo] & SPP_NOBLOCK)
    17431746                __SIGSET_CLEAR(&SigAction.sa_mask, iSignalNo);
    1744             sigset_t SigSetOld = !pThrd->fSigSetBlockedOld ? pThrd->SigSetBlocked : pThrd->SigSetBlockedOld;
     1747            sigset_t SigSetOld = pThrd->SigSetBlocked;
     1748            if (pThrd->fSigSetBlockedOld)
     1749            {
     1750                SigSetOld = pThrd->SigSetBlockedOld;
     1751                pThrd->fSigSetBlockedOld = 0;
     1752            }
    17451753            __SIGSET_OR(&pThrd->SigSetBlocked, &pThrd->SigSetBlocked, &SigAction.sa_mask);
    17461754
     
    26222630                            {
    26232631                                for (iSignalNo = 1; iSignalNo < SIGRTMIN; iSignalNo++)
    2624                                     if (__SIGSET_ISEMPTY(pSigSet))
     2632                                    if (__SIGSET_ISSET(pSigSet, iSignalNo))
    26252633                                        break;
    26262634                            }
Note: See TracChangeset for help on using the changeset viewer.