lkml.org 
[lkml]   [2008]   [Sep]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: paccept() oddity
    Ulrich -- ping!

    ---------- Forwarded message ----------
    From: Michael Kerrisk <mtk.manpages@googlemail.com>
    Date: Aug 29, 2008 10:45 PM
    Subject: Re: paccept() oddity
    To: Ulrich Drepper <drepper@redhat.com>
    Cc: Davide Libenzi <davidel@xmailserver.org>, Andrew Morton
    <akpm@linux-foundation.org>, lkml <linux-kernel@vger.kernel.org>,
    Linus Torvalds <torvalds@linux-foundation.org>


    Ulrich -- Ping!

    On Wed, Aug 20, 2008 at 6:50 PM, Michael Kerrisk
    <mtk.manpages@googlemail.com> wrote:
    > Ulrich,
    >
    > [
    > 2.6.27-rc has paccept():
    >
    > int paccept(int fd, struct sockaddr *sockaddr, socklen_t *addrlen,
    > const sigset_t *sigmask, int setsize, int flags)
    > ]
    >
    > While considering the sigset argument for paccept() (see my previous
    > message), and testing that system call, I realized that there is a certain
    > oddness in the implementation of paccept().
    >
    > Like accept(), paccept() automatically restarts if interrupted by a signal
    > handler that was established with the SA_RESTART flag.
    >
    > On the other hand, pselect(), ppoll(), and epoll_pwait() are never restarted
    > if interrupted by a handler, even if the handler was established with
    > SA_RESTART. (This is the same as with select(), poll(), and epoll_wait().)
    >
    > It seems to me that it makes little sense to restart paccept(), especially
    > in
    > the case where it is interrupted by a handler for one of the signals that is
    > in sigmask, since the whole point of calling paccept() is to block until a
    > connection is received, or until one of the signals in sigmask is caught().
    >
    > How about changing paccept() so that it is never automatically restarted if
    > interrupted by a signal handler, regardless of the SA_RESTART flag. (In
    > other words, paccept() should be consistent with pselect(), ppoll(), and
    > epoll_pwait(), rather than being consistent with accept().) What are your
    > thoughts?
    >
    > Cheers,
    >
    > Michael
    >
    >



    --
    Michael Kerrisk
    Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
    man-pages online: http://www.kernel.org/doc/man-pages/online_pages.html
    Found a bug? http://www.kernel.org/doc/man-pages/reporting_bugs.html


    --
    Michael Kerrisk
    Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
    man-pages online: http://www.kernel.org/doc/man-pages/online_pages.html
    Found a bug? http://www.kernel.org/doc/man-pages/reporting_bugs.html


    \
     
     \ /
      Last update: 2008-09-08 15:35    [W:2.665 / U:0.144 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site