Hi,

        Looking at the code in uipc_socket.c and udp_usrreq.c I am a
        bit confused as to how the locking mechanism works between the
        sockets and the protocols.  The socket calls all occur under
        Giant, which the protocols do not deal with, and the protocols
        all lock on the inp mutex, which the socket calls do not deal
        with.  Furthermore the sblock/sbunlock calls are only use by
        the socket layer.  I'm reading udp_input() as it's simpler to
        follow.  Have I missed something?  What prevents a protocol
        from writing to a socket buffer at the wrong time or the
        socket code from tweaking it at the wrong time?  Is this
        handled simply because of the priority of the threads doing
        the work?

Thanks,
George
_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to