cvs commit: src/sys/kern kern_descrip.c uipc_socket.c uipc_syscalls.c uipc_usrreq.c src/sys/net raw_cb.c raw_usrreq.c src/sys/netatm atm_socket.c src/sys/netatalk ddp_pcb.c src/sys/netgraph ng_ksocket.c src/sys/netgraph/bluetooth/socket ...

Robert Watson rwatson at freebsd.org
Mon Jun 14 19:24:30 GMT 2004


On Mon, 14 Jun 2004, Alfred Perlstein wrote:

> * Robert Watson <rwatson at FreeBSD.org> [040612 13:47] wrote:
> > rwatson     2004-06-12 20:47:32 UTC
> > 
> >   FreeBSD src repository
> > 
> >   Modified files:
> >   
> >   - Note that sofree()/sotryfree() will release the socket lock even if
> >     they don't free the socket.
> 
> Please use one of the existing conventions when doing refcount based
> operations, namely either: sorele, soput, sodrop. 
> 
> (from: vrele, vput, fdrop, etc) 

We chose to maintain the existing naming scheme for sockets present in the
code since it's origins in BSD, and consistent with other BSD platforms. 
Otherwise, I generally agree :-).  Given the volume of other changes going
in here, I was reluctant to introduce non-functional changes in order to
ease merging.  Once we have the basic version of locking in place, we will
have the opportunity to revisit this (and a great many other things). 

One thing I should point out, though, is that the reference counting in
sockets isn't a simple reference count, since in addition to so_count,
there's also a flag indicating whether a file descriptor reference is
present, and an un-counted reference from the pcb to the socket, which is
also considered "real".  The various
sofree()/sotryfree()/sorele()/soref()/..  APIs reflect this complexity,
and hence some inconsistency with a more simple API.

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert at fledge.watson.org      Senior Research Scientist, McAfee Research




More information about the cvs-src mailing list