concurrentqueue
concurrentqueue copied to clipboard
A fast multi-producer, multi-consumer lock-free concurrent queue for C++11
Hello, First of all thank you for the great efficient queue. I have a novice question. I need to use an std vector instead of a static array and need...
I have to create new queue with each thread creation. The number of queues which will be created is not fixed . Therefore I can't use static array. So i...
Multiple threads receive stock ticker data, store it in the queue, and a single thread takes out data from the queue for processing, and finds that it is not strictly...
The CMake-based build+install works, but it ends up installing the header files in `include/concurrentqueue/moodycamel`. This forces client code to use this header inclusion: ```c++ #include ``` While it would be...
Vcpkg includes `concurrentqueue` among its libraries and it installs it - like most of its libraries - through CMake to be consumed also with CMake. The way Vcpkg has client...
Hello, Thank you for your work! It would be beneficial to implement a feature that allows the selection of an allocator instance at runtime. For instance, we could introduce an...
I tried using this lock free queue in our program, but the performance of the task was even worse. Our program scenario involves multiple queues, each with a fixed number...
code: ``` struct LogEvent { std::string fmt; void *udata; std::string file_path; int line; SlogLevel level; std::string tag; int syslog_triger; explicit LogEvent(std::string fmt, void *udata, std::string file_path, int line, SlogLevel level,...
I write a parallel program that uses concurrent-queue, and most time it runs ok with very high performance. however, in an unknown situation, when the queue has about one million...
ConcurrentQueue define as : ` moodycamel::ConcurrentQueue clocks_; ` Enqueue thread: ``` while (curr_clock_time < end_clock_time && !stop_) { SINFO("ENQUEUE CLOCK: {}", curr_clock_time); while (!clocks_.try_enqueue(curr_clock_time)) { std::this_thread::sleep_for(std::chrono::nanoseconds(options_.precision)); } curr_clock_time += step;...