andreiavrammsd/cpp-channel
C++11 thread-safe container for sharing data between threads (synchronized queue)
📋 What's Changed
- Enforce value type requirements by @andreiavrammsd in https://github.com/andreiavrammsd/cpp-channel/pull/83
📋 Non-API Changes
- Create VS Code dev environment
- Review CMake files
- Implement realistic examples
- Cancel CI running jobs on push
- Add more benchmarks
- Full Changelog: https://github.com/andreiavrammsd/cpp-channel/compare/v1.3.0...v1.3.1
📋 What's Changed
- Storages by @andreiavrammsd in https://github.com/andreiavrammsd/cpp-channel/pull/73
- The elements are stored in an std::queue by default. This can now be changed with custom or built-in storages:
- std::queue-based storage
- std::vector-based storage
- std::array-based storage (if you don't want to use the heap)
- ```c++
- msd::channel<int> chan;
- msd::channel<int, msd::vector_storage<int>> chan;
- + 4 more
📋 What's Changed
- Improve integration with STD algorithms by moving values instead of copying them @andreiavrammsd in https://github.com/andreiavrammsd/cpp-channel/pull/71
📦 Known limitation
- In some situations on MSVC, an algorithm might not work, and a loop could be an alternative:
- ```c++
- std::transform(input_chan.begin(), input_chan.end(), msd::back_inserter(output_chan))
- ```
- vs
- ```c++
- for (auto&& value : input_chan) {
- output_chan.write(value);
- + 4 more
📋 What's Changed
- Implemented output iterator
- ```c++
- std::transform(input_chan.begin(), input_chan.end(), msd::back_inserter(output_chan))
- ```
📋 What's Changed
- Add write, read, drained for better control over stopped channels
- Add static channel that allocates elements on the stack and does not throw exceptions
📋 What's Changed
- Add cmake install
First stable release. See [documentation](https://andreiavrammsd.github.io/cpp-channel/).
Fixes blocking iterator by returning (const) reference type from the dereference operator.
Fix close race. By @bherw.
Add iterator reference type. Thanks, @zack-luan!
Breaking change: push and fetch precedence has changed. See #27. Chaining for push and fetch was introduced. Thanks, @longnguyen2004!
Thread safety improvements by @bvbfan.
GCC-12 compilation bug fix by @fwflunky.
📋 Changes
- Bug fixes. Thanks to [@lbb](https://github.com/lbb) and [@theHamsta](https://github.com/theHamsta).
- Internal improvements
Interface library
Fix range-based for going one extra loop.
Closed channel exception rename.
Move to namespace `msd`.
📋 Changes
- Ability to mark the channel as closed when you no longer want to write on it. Blocking channel iteration will end.
- Support std copy/move from channel to a destination.
