lkml.org 
[lkml]   [2005]   [Aug]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: Signal handling possibly wrong
    Date
    It appears to me that Bodo Stroesser is correct.  The description of
    sa_mask given in the man page is:

    "sa_mask gives a mask of signals which should be blocked during
    execution of the signal handler. In addition, the signal which
    triggered the handler will be blocked, unless the SA_NODEFER flag is
    used."

    Note that the "unless the SA_NODEFER flag is used" clause applies only
    to "In addition, the signal which triggered the handler will be
    blocked." The first sentence of the description, which is unaffected by
    this clause, states that the signals specified in sa_mask will be
    blocked while the signal handler being installed executes. The
    description of sa_mask in no way suggests that if SA_NODEFER is
    specified, the signals specified in sa_mask will not be blocked.

    The description of SA_NODEFER given in the man page is:

    "SA_NODEFER

    Do not prevent the signal from being received from within its own signal
    handler. SA_NOMASK is an obsolete, non-standard synonym for this flag."

    Clearly, the first sentence of this description is the only one which
    specifies any behavior at all, so the second sentence can be ignored.
    This description only states that SA_NODEFER will block the signal for
    which a signal handler is being installed while the signal handler being
    installed executes. It does not indicate that SA_NODEFER has any effect
    on the blocking of signals other than the one for which a handler is
    being installed, and thus it should be assumed that it has no such
    effect.

    The source code indicates, though, that SA_NODEFER has precisely this
    effect; specifying SA_NODEFER prevents the signals specified in sa_mask
    from being blocked (an exception to the normal behavior of sa_mask,
    described by the first sentence of the sa_mask man page description
    included above), when neither the description of sa_mask nor the
    description of SA_NODEFER specifies such an exception.

    --
    Jeremy Maitin-Shepard
    -
    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-08-09 21:36    [W:0.033 / U:2.124 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site