I forgot how tricky it is to write a C library that does concurrent stuff. Can't even decide on an API. Callbacks that may be run from another thread context? Blocking function calls, with or without support for cancellation? Expose a state-machine based event loop?
So many possibilities, they all suck and there's no standard.