libmill
MPMCQueue.h
libmill | MPMCQueue.h | |
---|---|---|
2 | 2 | |
2,701 | 1,093 | |
- | - | |
0.0 | 2.8 | |
about 3 years ago | about 2 months ago | |
C | C++ | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
libmill
-
Show HN: A pure C89 implementation of Go channels, with blocking selects
libmill (https://github.com/sustrik/libmill) and libdill (https://github.com/sustrik/libdill) should be similar and probably mentioned.
As far as I understand the differences between CspChan and libmill might be that libmill also implements lightweight tasks (coroutines) and everything that goes with it (IO multiplexing, async timers, etc), while CspChan uses OS threads?
-
libmill - Go-style concurrency in C
https://github.com/sustrik/libmill/blob/e8937e624757663f5379...
They wrote a macro (or in this case a set of macros) to transform that into valid C code.
MPMCQueue.h
-
MPMC suggestions where messages are sent to all consumers ?
I have looked at the commonly recommended - https://github.com/cameron314/readerwriterqueue - https://github.com/rigtorp/MPMCQueue
-
Correctly implementing a spinlock in Modern C++
You can align and pad each ring buffer slot to the cache line size. Example https://github.com/rigtorp/MPMCQueue/blob/master/include/rig...
What are some alternatives?
libdill - Structured concurrency in C
moodycamel - A fast multi-producer, multi-consumer lock-free concurrent queue for C++11
Disruptor - High Performance Inter-Thread Messaging Library
A C++14 library for executors - C++ library for executors
abseil-cpp - Abseil Common Libraries (C++)
RaftLib - The RaftLib C++ library, streaming/dataflow concurrency via C++ iostream-like operators
readerwriterqueue - A fast single-producer, single-consumer lock-free queue for C++
SObjectizer - SObjectizer: it's all about in-process message dispatching!
Thrust - [ARCHIVED] The C++ parallel algorithms library. See https://github.com/NVIDIA/cccl
CUB - THIS REPOSITORY HAS MOVED TO github.com/nvidia/cub, WHICH IS AUTOMATICALLY MIRRORED HERE.