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>
