FreeBSD's equivalent implementation lives here (it does all of this under an exclusive lock): http://fxr.watson.org/fxr/source/kern/kern_descrip.c#L1882
It doesn't use RCU, but does do a kind of bespoke refcounted retention of old versions of the fdtable on a free list.
FreeBSD's equivalent implementation lives here (it does all of this under an exclusive lock): http://fxr.watson.org/fxr/source/kern/kern_descrip.c#L1882
It doesn't use RCU, but does do a kind of bespoke refcounted retention of old versions of the fdtable on a free list.