Not upstreamed because I think NetBSD should be given the chance to
implement some better interprocess synchronization primitives first.
See PR lib/49529.
In particular what's missing is an interprocess sync primitive that can:
1) be passed safely through MAP_SHARED memory
2) support atomic unlock-and-block (like pthread_cond_wait)
3) wake up all waiters at once
(needed to build DRI3 support in MesaLib and modular-xorg-server on Linux)
This library offers a CPU-based synchronization primitive compatible
with the X SyncFence objects that can be shared between processes
using file descriptor passing.
There are three underlying implementations:
1) On Linux, the library uses futexes
2) On FreeBSD, the library uses umtx
3) On other systems, the library uses posix mutexes and condition
variables.