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