Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Feb 2005 16:37:56 -0800
From:      Bill Fenner <fenner@research.att.com>
To:        rwatson@freebsd.org
Cc:        net@freebsd.org
Subject:   Re: solisten() question: why do we check for completed connections?
Message-ID:  <200502180037.j1I0bu9F001044@bright.research.att.com>

next in thread | raw e-mail | index | archive | help

Robert,

  The code in rev 7.1 (4.3BSD) was:

        if (so->so_q == 0) {
                so->so_q = so;
                so->so_q0 = so;
                so->so_options |= SO_ACCEPTCONN;
        }

which looks like it's initializing q0 and q to be circular queues,
which has to only happen once, and also setting SO_ACCEPTCONN; since
nothing ever turns off SO_ACCEPTCONN, this is not something that
has to happen only once.  When the stuff that had to happen only
once got removed, the conditional remained.

So, I'd say that setting SO_ACCEPTCONN is required, but the conditional
is not.  I don't know if that helps your race or not.

  Bill



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200502180037.j1I0bu9F001044>