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