freebsd-nq/sys/netncp
Jeff Roberson ace8398da0 Refactor select to reduce contention and hide internal implementation
details from consumers.

 - Track individual selecters on a per-descriptor basis such that there
   are no longer collisions and after sleeping for events only those
   descriptors which triggered events must be rescaned.
 - Protect the selinfo (per descriptor) structure with a mtx pool mutex.
   mtx pool mutexes were chosen to preserve api compatibility with
   existing code which does nothing but bzero() to setup selinfo
   structures.
 - Use a per-thread wait channel rather than a global wait channel.
 - Hide select implementation details in a seltd structure which is
   opaque to the rest of the kernel.
 - Provide a 'selsocket' interface for those kernel consumers who wish to
   select on a socket when they have no fd so they no longer have to
   be aware of select implementation details.

Tested by:	kris
Reviewed on:	arch
2007-12-16 06:21:20 +00:00
..
ncp_cfg.h
ncp_conn.c
ncp_conn.h
ncp_crypt.c
ncp_file.h
ncp_lib.h
ncp_login.c
ncp_mod.c
ncp_ncp.c
ncp_ncp.h
ncp_nls.c
ncp_nls.h
ncp_rcfile.h
ncp_rq.c Refactor select to reduce contention and hide internal implementation 2007-12-16 06:21:20 +00:00
ncp_rq.h
ncp_sock.c Refactor select to reduce contention and hide internal implementation 2007-12-16 06:21:20 +00:00
ncp_sock.h Refactor select to reduce contention and hide internal implementation 2007-12-16 06:21:20 +00:00
ncp_subr.c
ncp_subr.h
ncp_user.h
ncp.h
ncpio.h
nwerror.h