Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Replaced moodycamel::ConcurrentQueue with tbb::concurrent_queue in Sa…
…lmonQuantify There seems to be a bug in the moodycamel::ConcurrentQueue (cameron314/concurrentqueue#12) that, under very high contention, can result in an out-of-bounds memory access and segfault. This was happening on the test data where, due to its very small size, the queue was coming under very heavy contention. The crash was not deterministic, but replacing the moodycamel queue with the tbb queue seems to have resolved the issue in all cases. In the future, I'd like to move back to the moodycamel variant, as it allows bulk enqueue/dequeue operations, and is thus faster. However, the tbb implementation will remain in place until the moody camel bug is fixed. The old code remains in SalmonQuantify.cpp (commented out) so that it will be easy to re-enable when the bug is finally fixed.
- Loading branch information