Hey Michael, Thanks for your work on ptr_ring.h. I'm interested in using it, but in a multi-producer, multi-consumer context. I realize it's been designed for a single-producer, single-consumer context, and thus uses a spinlock. I'm wondering if you'd be happy to receive patches that implement things in a lock-free way, in order to make the data structure more broadly usable.
In case you're curious, this would be used for the multi-core algorithms in WireGuard. Thanks, Jason