Releases: dallison/subspace
Cmake and retirement fds
Many thanks to @dloman for the cmake build files. I appreciate it Dan.
This adds cmake build files and retirement fds. Cmake has been checked on Linux with GCC and clang. On Mac it works with Apple Clang.
Retirement fds allow a publisher to be notified when a slot has been retired (either by all subscribers or by a message being dropped). This is useful for determining when resources can be freed at the publisher.
Release 2.0.2
Fixes an issue with resize where the shared memory files were unmapped but not deleted when they are no longer referenced.
Just update to latest toolbelt
Just updates the version of cpp_toolbelt
Subspace version 2
This is a major release of Subspace that supports the following new features:
- Lock-free shared memory. This removes the lock from shared memory to provide better freedom from interference and better P90 performance (few context switches)
- Client-side buffer allocation. This moves the channel buffer allocation from the server to the client to speed up resize operations
- Multiplexed virtual channels. This allows channels that all share the same message types and purpose to use a single multiplexer channel for their data. If your IPC design uses a lot of channels that are all similar (like node tick channels), this can reduce the memory utilization.
- C client. A C-language client that maps onto the C++ client. More portable and easier to interface with other languages.
- Active messages. Message objects returned from
ReadMessage
are now active and will hold onto the channel's slot while they are alive. They can be moved but not copied. This is a replacement for the oldsubspace::shared_ptr<T>
type and is used for all messages.
Minor fix for Linux compilers
Adds a missing include for cstddef
Shared and weak pointer fixes
Fixes some races and reference counting issues in shared_ptr and weak_ptr
Fix NextSlot for out of message condition
This was broken by a recent change. Reverts the change. The subscriber needs to hold onto the last slot it saw so that NextSlot can refer to a valid slot. The slot can't be recycled.
Some bug fixes
Fixes problems with resizing.
A few bugs fixes and tidyups
Incorporates some changes from Mikael for MIRSA compliance and fixes a few bugs.
1.3.1: Fix dropped message detection
Fixes a small issue with dropped message detection (should only be reported when reading next, not newest messages).
Also, upgrades to latest coroutines and toobelt releases that fix bitset bugs.