- Internally to SHM-jemalloc use vaddr space less aggressively, avoiding eventual fatal error despite not-high SHM RAM use. ipc_shm_arena_lend#54
- Direct or indirect (such as via
ipc::transport::struc::Channel
) use of SHM-jemalloc could trigger this problem. - SHM-classic (
ipc::shm::classic
) was not affected.
- Direct or indirect (such as via
ipc::transport::sync_io::Native_socket_stream
andBlob_stream_mq_sender
: Internal fix to avoid mayhem with user access (epoll_ctl(DEL)
in particular) of central FDs within these objects, after disconnect/error detected but before object destroyed. ipc_core#31ipc::transport::struc::[sync_io::]Channel
: Internal fix to avoid potential crash (or trippedassert()
if enabled) when issuing messages around the time when a session ends due to the opposing process, e.g., exiting. ipc_session#29- Issue affected only sessions backed by SHM-jemalloc (
ipc::session::shm::arena_lend::jemalloc
). - Sessions backed by SHM-classic (
ipc::session::shm::classic
) and non-zero-copy sessions (ipc::session
) were not affected.
- Issue affected only sessions backed by SHM-jemalloc (
- Fix
ipc_shm_arena_lend
CMake build-break bug when one specified no (empty) jemalloc API prefix when building jemalloc (dependency). ipc_shm_arena_lend#59 Also nearby:- ipc_shm_arena_lend CMake-build knob
JEMALLOC_PREFIX
: rename toFLOW_IPC_JEMALLOC_PREFIX
to avoid collision with same-named variable elsewhere. - ipc_shm_arena_lend CMake-build knobs
JEMALLOC_LIB
andJEMALLOC_INCLUDE_PATH
: rename toJEMALLOC_LIBRARIES
andJEMALLOC_INCLUDEDIR
, respectively, because these names are already used by the default auto-searcher. - Internally improve build script when searching for jemalloc install.
- ipc_shm_arena_lend CMake-build knob
- Bug fix in
Bipc_mq_handle
wait-based APIs exception-throwing form.- Only direct use of some of these APIs by user (currently unlikely) was affected. Indirect use via other APIs was not affected.
ipc::shm::arena_lend_jemalloc::Ipc_arena::construct<T>(bool use_cache, ...)
overload: Remove and replace (withconstruct_thread_cached()
) this API due to potential overload ambiguity for someT
s. ipc_shm_arena_lend#56Ipc_arena
public super-classShm_pool_collection
also had aconstruct()
with potentially ambiguous signature; rename toconstruct_maybe_thread_cached()
.
- C++20 mode build and GitHub-CI-pipeline support. C++17 remains the main/minimal mode, but we now ensure user can build/use in C++20 mode also. #118
- Dependency bump: Boost v1.84 to 1.87. #123
- Minor dead-code removal from build script(s).
- Flow v2.0.0 has gained a unit test suite similar to Flow-IPC and now houses various common test utilities, so they are removed here, and instead we reuse them from their new location in Flow.
- In test/demo programs using the new (albeit optional)
flow::log::Config::init_component_to_union_idx_mapping()
arg in the now-recommended way. flow#94 - Minor test/demo code fixes.
- GitHub CI pipeline: Tweak to get gcc-13 builds to work again (GitHub changed preinstalled packages).
- Comment and/or doc changes.
Full Changelog: v1.0.2...v2.0.0
Submodule repository flow
- Release v2.0.0: release notes.
- Previously: release v1.0.2.
API notes
- New APIs:
ipc::shm::arena_lend::jemalloc::Ipc_arena::construct_thread_cached()
: replaces removedconstruct(true, ...)
.ipc::shm::arena_lend::jemalloc::Shm_pool_collection::construct_maybe_thread_cached()
: replaces removedconstruct()
.- Error codes:
ipc::transport::struc::shm::error::S_SERIALIZE_FAILED_SESSION_HOSED
andS_DESERIALIZE_FAILED_SESSION_HOSED
, when working withipc::transport::struc
APIs in SHM-jemalloc-backed channel.
- Breaking changes:
- Removed
ipc::shm::arena_lend::jemalloc::Ipc_arena::construct(bool use_cache)
.- For
use_cache = true
, callconstruct_thread_cached()
(new). - For
use_cache = false
, callconstruct(Ctor_args&&... args)
.
- For
- Renamed
ipc::shm::arena_lend::jemalloc::Shm_pool_collection::construct()
toconstruct_maybe_thread_cached()
. ipc_shm_arena_lend
: Build script: renamed optional cache-settings:JEMALLOC_PREFIX
toFLOW_IPC_JEMALLOC_PREFIX
JEMALLOC_LIB
toJEMALLOC_LIBRARIES
JEMALLOC_INCLUDE_PATH
toJEMALLOC_INCLUDEDIR
- Removed