| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2025-12-09 | 4.5 kB | |
| Release v1.4.0 source code.tar.gz | 2025-12-09 | 663.3 kB | |
| Release v1.4.0 source code.zip | 2025-12-09 | 872.6 kB | |
| Totals: 3 Items | 1.5 MB | 1 | |
π Release v1.4.0
This release includes FreeBSD platform support, comprehensive test suite refactoring, important bug fixes, and new cleanup interfaces.
π Major Features
FreeBSD Platform Support (#156, [#158], [#160], [#161])
- β Full FreeBSD platform support with POSIX implementation
- π§ Fixed all POSIX semaphore naming issues for FreeBSD compatibility
- π§ Fixed robust mutex EOWNERDEAD handling
- π§ Resolved C++17 compilation errors on FreeBSD GCC 13.3
- π§ Fixed segfault in mutex destruction
- π§ Fixed mutex unlock timing for multi-run stability
- π§ Fixed shm_unlink failures with proper '/' prefix handling
Comprehensive Unit Test Suite (#159)
- π¦ Complete test refactoring with comprehensive coverage
- β New tests for: buffer, shm, mutex, semaphore, condition, locks, route, channel
- π― Improved test quality with proper edge case handling
- π Better test documentation and semantics
Windows Shared Memory Reference Counting
- π’ Implemented full reference counting for Windows shared memory
- β Now matches POSIX behavior
- π§ Fixed all reference counting tests on Windows
π§ Bug Fixes
Critical Fixes
- π Fixed double-free bugs in shared memory tests
- π Fixed segfault in EOWNERDEAD handling
- π Fixed FreeBSD segfault by unlocking mutex before destruction
- π Fixed mutex unlock timing to avoid interfering with other references
- π Fixed ODR violations in get_wait_time inline functions
- π Fixed namespace conflicts with predefined 'linux' macro
Buffer Improvements
- π§ Removed const from char constructor to prevent undefined behavior
- π§ Removed redundant const qualifier in array constructor
- π§ Renamed 'additional' parameter to 'mem_to_free' for clarity
Test Fixes
- π§ Fixed receiver loop count in MultipleSendersReceivers test
- π§ Corrected test logic in multiple test cases
- π§ Fixed id_t ambiguity in test_shm.cpp
- π§ Replaced C++17 structured bindings with C++14 compatible code
- π§ Changed test indentation from 4 spaces to 2 spaces
Platform Compatibility
- π§ Fixed permission issues under Linux (#139)
- π§ Fixed MinGW compatibility - use lowercase windows.h (#157)
- π§ Improved POSIX shared memory error logging
β¨ Enhancements
Cleanup Interfaces
- π§Ή Added cleanup interfaces for shared memory handles
- π§Ή Added cleanup interfaces for queue
- π§Ή Added cleanup interfaces for synchronization facilities
- π§Ή Added cleanup interfaces for waiter
- π§Ή Added
clear_storagefor queue - π§Ή Added cleanup interfaces for ipc channel
Connection Management (#145, [#148])
- π Fixed connection slot fullε€ζιθ―― (#145)
- π Fixed issues [#107] and [#123] - receiver checks connection when pop fails
- π In non-broadcast mode, connection tags are only used for counting
Build System
- π¦ Added PACKAGE_VERSION
- π¦ Added cpp-ipc-targets
- π¦ Updated CMakeLists.txt for new test structure
Code Quality
- π¨ Improved name handling in shm_posix.cpp to match semaphore pattern
- π¨ Improved emplace construction for shm_data in mutex.h
- π¨ Removed redundant self-assignment in shm_win.cpp
- π Added semantic comments for release/remove operations
π Test Coverage
All tests now pass on: - β Linux (GCC, Clang) - β Windows (MSVC, MinGW) - β FreeBSD (GCC 13.3) - β QNX (POSIX)
π Contributors
Special thanks to all contributors who made this release possible: - @mutouyun - FreeBSD support, test refactoring, numerous bug fixes - @cscd98 - MinGW compatibility (#157) - @johnwongx - Connection slot fix (#145) - @aengusjiang - POSIX shm error logging improvements (#139) - @yonker-yk - Connection management improvements (#148)
π Commits in This Release
This release contains 64 commits with improvements across the entire codebase.
Detailed Changelog
For a complete list of changes, see the commit history.
π Links
β¬οΈ Upgrading
This release is backward compatible with v1.3.0. Simply update your dependency to v1.4.0.
Breaking Changes
None
Deprecations
None
Full Changelog: https://github.com/mutouyun/cpp-ipc/compare/v1.3.0...v1.4.0