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

---------- Forwarded message ----------
From: Michael Kerrisk <>
Date: Aug 29, 2008 10:45 PM
Subject: Re: paccept() oddity
To: Ulrich Drepper <>
Cc: Davide Libenzi <>, Andrew Morton
<>, lkml <>,
Linus Torvalds <>

Ulrich -- Ping!

On Wed, Aug 20, 2008 at 6:50 PM, Michael Kerrisk
<> 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;
man-pages online:
Found a bug?

Michael Kerrisk
Linux man-pages maintainer;
man-pages online:
Found a bug?

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