GitPedia
andreiavrammsd

andreiavrammsd/cpp-channel

C++11 thread-safe container for sharing data between threads (synchronized queue)

22 Releases
Latest: 1y ago
v1.3.1Latest
andreiavrammsdandreiavrammsd·1y ago·June 17, 2025
GitHub

📋 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
v1.3.0
andreiavrammsdandreiavrammsd·1y ago·June 13, 2025
GitHub

📋 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
v1.2.1
andreiavrammsdandreiavrammsd·1y ago·June 12, 2025
GitHub

📋 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
v1.2.0
andreiavrammsdandreiavrammsd·1y ago·June 11, 2025
GitHub

📋 What's Changed

  • Implemented output iterator
  • ```c++
  • std::transform(input_chan.begin(), input_chan.end(), msd::back_inserter(output_chan))
  • ```
v1.1.0
andreiavrammsdandreiavrammsd·1y ago·June 11, 2025
GitHub

📋 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
v1.0.1
andreiavrammsdandreiavrammsd·1y ago·June 8, 2025
GitHub

📋 What's Changed

  • Add cmake install
v1.0.0
andreiavrammsdandreiavrammsd·1y ago·June 8, 2025
GitHub

First stable release. See [documentation](https://andreiavrammsd.github.io/cpp-channel/).

v0.8.3
andreiavrammsdandreiavrammsd·1y ago·August 11, 2024
GitHub

Fixes blocking iterator by returning (const) reference type from the dereference operator.

v0.8.2
andreiavrammsdandreiavrammsd·2y ago·January 25, 2024
GitHub

Fix close race. By @bherw.

v0.8.1
andreiavrammsdandreiavrammsd·2y ago·October 8, 2023
GitHub

Add iterator reference type. Thanks, @zack-luan!

v0.8.0
andreiavrammsdandreiavrammsd·3y ago·June 6, 2023
GitHub

Breaking change: push and fetch precedence has changed. See #27. Chaining for push and fetch was introduced. Thanks, @longnguyen2004!

v0.7.3
andreiavrammsdandreiavrammsd·3y ago·February 6, 2023
GitHub

Thread safety improvements by @bvbfan.

v0.7.2
andreiavrammsdandreiavrammsd·4y ago·June 7, 2022
GitHub

GCC-12 compilation bug fix by @fwflunky.

v0.7.1
andreiavrammsdandreiavrammsd·4y ago·March 25, 2022
GitHub

📋 Changes

  • Bug fixes. Thanks to [@lbb](https://github.com/lbb) and [@theHamsta](https://github.com/theHamsta).
  • Internal improvements
v0.7.0
andreiavrammsdandreiavrammsd·4y ago·March 6, 2022
GitHub

Interface library

v0.6.1
andreiavrammsdandreiavrammsd·5y ago·April 12, 2021
GitHub

Fix range-based for going one extra loop.

v0.6.0
andreiavrammsdandreiavrammsd·5y ago·January 28, 2021
GitHub

Closed channel exception rename.

v0.5.0
andreiavrammsdandreiavrammsd·5y ago·January 27, 2021
GitHub

Move to namespace `msd`.

v0.4.0
andreiavrammsdandreiavrammsd·5y ago·August 30, 2020
GitHub

📋 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.
v0.3.0
andreiavrammsdandreiavrammsd·5y ago·July 19, 2020
GitHub
v0.2.0
andreiavrammsdandreiavrammsd·5y ago·July 17, 2020
GitHub
v0.1.0
andreiavrammsdandreiavrammsd·5y ago·July 11, 2020
GitHub