CsLibGuarded  1.4.2
Timeline

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

  • Update copyright

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

  • Update copyright

May 2019

  • Reformat code
  • Clean up code to remove warnings
  • Improve deleter for shared_guarded using std::unique_lock

November 2019

  • Fix bug in rcu_list

2020

January 2020

  • Update copyright
  • 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

  • Update copyright

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