yeah, I've struggled with: * making the bbqueue API understandable, it makes sense to me but seems to leave a lot of confusion * figure out how to abstract over static or heap allocated bbqueues, to make it more useful on std * figure out how to offer async and blocking APIs * figure out how to provide the same API on non-atomic targets, where it would be better to just take one critical section for buffer ops, instead of trying to do a tricky set of atomic operations, or taking N critical sections to fake the N atomic ops (usually 3-5 reads/writes)