Major Milestones
2016
March 2016
- Initial design and development of the CsLibGuarded library
April 2016
- Generate new documentation for libGuarded using DoxyPress
- libGuarded 1.0.0 released
May 2016
- CppNow 2016 presentation on CopperSpice and our new CsSignal library
- CppNow 2016 presentation on DoxyPress demonstrating how clang can be used to parse C++
- CppNow 2016 presentation on libGuarded
June / July 2016
- CopperSpice team on temporary leave as Barbara recovers from a Total Knee Replacement
Thank you to the community for their wonderful support and encouragement during this time
August 2016
- Add allocators
- Update documentation
2017
January 2017
March 2017
- Add RCU classes
- Add new class documentation
- Integrate libGuarded library with CsSignal library
April 2017
- Stability enhancements to RCU
- libGuarded 1.1.0 released
June 2017
- Merge several pull requests for custom allocator support
August 2017
- Update rcu_list for better standards compliance
- Move to C++14
November 2017
- Merge pull request
- Allow ordered_guarded::read to return a value from the lambda
December 2017
- Enhance ordered_guarded::read method
- Add more unit tests
2018
January 2018
- Update copyright
- Presented a talk on Multithreading and libGuarded for ACCU / C++ meeting
- Support multiple developers actively using libGuarded in production
2019
January 2019
May 2019
- Reformat code
- Clean up code to remove warnings
- Improve deleter for shared_guarded using std::unique_lock
November 2019
2020
January 2020
- Remove Autotools build files
- Add CMake build files
- Move to C++17
- Change name of library from libGuarded to CsLibGuarded for consistency
- CsLibGuarded 1.2.0 released
February 2020
- Merge pull request to remove std::enable_if and allow perfect forwarding of return values
May 2020
- Change class guarded<T> to plain_guarded<T> to avoid name conflicts
- Add CsLibGuarded to the install include path name
- Add [[nodiscard]] to all lock methods
- Improve cow_guarded<T> class to allow adding a default constructor
- Redesign time out handling in try_lock()
- Move from boost::test to Catch2 for unit testing
2021
January 2021
2022
January 2022
- Update copyright
- Move from CMake 3.8 to 3.16
- Add a missing system include file
February 2022
- Improve all handles so they are movable and default constructible
- Add a new function called lock_guards which can lock multiple guarded objects at the same time
July 2022
- Add the emplace() method in the rcu_list class
September 2022
- CsLibGuarded 1.3.0 released
November 2022
- Modify CsLibGuarded CMake build files to support exporting targets
- Define CsLibGuarded_INCLUDE_DIR variable, this is the export location where the include files are installed
2023
January 2023
- Update copyright
- CsLibGuarded 1.4.0 released
March 2023
- Add support for a read-only lock of a const plain_guarded object
- Add unit test for locking a const plain_guarded object
April 2023
- Modify write_handle, read_handle, and rcu_guard to be move only
May 2023
- CsLibGuarded 1.4.1 released
July 2023
- Add missing include file (PR)
August 2023
- Add missing include file (PR)
2024
January 2024
- Change copyright
- Clean up compiler warnings
- Embed Catch2 library
February 2024
- Correct shadowing and override warnings
September 2024
- Update minimum version to CMake 3.18
- CsLibGuarded 1.4.2 release