solisten() question: why do we check for completed connections?
Bill Fenner
fenner at research.att.com
Thu Feb 17 16:37:58 PST 2005
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
More information about the freebsd-net
mailing list