Releases: FrankReiser/ReiserRT_Core
Version 4.0.1
This release modifies BlockPoolDeleter such that it may be queried for the number of array elements that are managed by the unique_ptr
array specialization returned by the getBlock
operation. While making this change a number of other class member functions that should have been declared const
were fixed. Additionally, some noexcept
were also added.
Version 3.0.2
This release establishes that compiler warnings are to be considered compiler errors.
Version 2.5.2
This release establishes that compiler warnings are to be considered compiler errors.
Version 3.0.1
This release adds template class "BlockPool" to the project. "BlockPool" requires a c++17 build and for reliable interfacing, a c++17 compilation of client code. It is possible you can get away with a c++11 client compilation, dependent on the actual compiler. "BlockPool" is much like "ObjectPool" but delivers an array of objects wrapped in a unique pointer with a custom deleter. See README file for details.
The version 2.X branch will be maintained for some time for C++11 compatibility but, will never incorporate the "BlockPool" feature. If you do not require the functionality of "BlockPool" and do not have a suitable compiler, use the latest 2.X release.
Version 2.5.1
This is primarily a maintenance release. This release is being made as perhaps the last C++11 branch as we move to C++17 support, necessary for upcoming "BlockPool" feature. This "BlockPool" feature cannot be reliably interfaced with C++11. Some compilers allow the syntax needed and others do not. This release does not include "BlockPool".
Changes made here are mostly in support of the non-included "BlockPool" template class. However, there a few efficiency improvements and even a pretty egregious bug fix. Changes from Version 2.4.2 are described below:
- Renamed "ObjectPoolBase" to "MemoryPoolBase". This was for sanity as MemoryPoolBase will also be the basis for the upcoming "BlockPool".
- Moved "createDeleter" operation out of "MemoryPoolBase" into "ObjectPool" as it really did not belong there and was not suitable for the upcoming "BlockPool". "BlockPool" will require a differing deleter type.
- Extracted "MemoryPoolDeleterBase" from "ObjectPoolDeleterBase" for reusability by upcoming "BlockPool".
- Added an operation to query the padded element size in addition to the un-padded element size. This information is required for the upcoming "BlockPool".
- Extracted local "RawMemoryManager" class from the "ObjectPool", "createObj" operation into a nested class within "MemoryPoolBase" for greater reuse.
- Fixed a "Semaphore" compile issue experienced under GitHub's workflow build. We needed to explicitly include "cstddef".
- All function object types used by "Semaphore", "RingBufferGuarded" and "MessageQueue" are now passed by constant reference. No copies needed.
- Fixed a fairly significant bug that has gone unnoticed for a while where MessageQueue primed it's raw ring buffer with incorrectly aligned elements. It need to specify the padded size, not the un-padded size.
- Other CLang-Tidy work and Documentation Tweaking.
Version 2.4.2
Downgraded the required CMake version from 3.16 to 3.15 for a petalinux client. Polished up the CMake script code based on lessons learned elsewhere.
Version 2.4.1
This release modifies MessageQueueBase::AutoDispatchLock to add "Basic Lockable" duck type operations, lock and unlock. It makes it more useful in cases where a unique_lock or unique_lock type functionality is needed.
Version 2.3.1
A MessageQueue purge operation has been added but there are some caveats. It must be used with care. Refer to the documentation within the header file.
Version 2.2.3
This is a minor release that provides additional functionality for MessageQueueBase::AutoDispatchLock. We have added a 'native_handle' operation to return a native mutex handle that can be directly used with native API functions. This allows AutoDispatchLock to be utilized with native condition variables directly.
Version 2.2.2
Minor inconsequential changes from previous release.