Cameron
Cameron
Either or 👍
To take care of races. It should never get stuck in that loop.
Probably worth comparing against. I was not aware it existed :-) It looks like I only stripped out one dependency (Boost) for `ProducerConsumerQueue`. For other benchmarks I've done elsewhere, I...
Changing the API would require completely redesigning the entire implementation :-) It's also almost impossible to make a two-stage approach thread-safe for the MPMC case (while being efficient). It sounds...
It's not that simple, as there's quite a bit of state [beyond just the tail index](https://github.com/cameron314/concurrentqueue/blob/6dd38b8a1dbaa7863aa907045f32308a56a6ff5d/concurrentqueue.h#L2522). This style of API is also easy to accidentally misuse, leading to bugs in...
Obviously the assertion should not fire. Can you share an example that reproduces this?
In this example, multiple producer threads are sharing the same producer tokens concurrently, which breaks the contract of the API.
Looks like dropbox/dropbox-sdk-go-unofficial moved its modules to a `v6` subfolder. `dbxcli` was updated on master but not released. Try `go get github.com/dropbox/dbxcli@master`. EDIT: `go get github.com/dropbox/dbxcli@master` works to install the...
You're likely hitting a limit from the traits, not element capacity. See https://github.com/cameron314/concurrentqueue/issues/169#issuecomment-546113196. This is also described in the [README](https://github.com/cameron314/concurrentqueue#preallocation-correctly-using-try_enqueue). There's no single capacity count in any case. It depends...
You can use the `MAX_SUBQUEUE_SIZE` trait to indirectly control this, if that helps.