SkillAgentSearch skills...

Lockpp

🔒 A C++23 Library that provides mutex protected objects

Install / Use

/learn @Curve/Lockpp

README

<div align="center"> <img src="assets/logo.svg" height=312> </div> <br/> <p align="center"> A C++23 library providing mutex protection for any object </p>

📦 Installation

  • Using CPM

    CPMFindPackage(
      NAME           lockpp
      VERSION        3.2.0
      GIT_REPOSITORY "https://github.com/Curve/lockpp"
    )
    
  • Using FetchContent

    include(FetchContent)
    
    FetchContent_Declare(lockpp GIT_REPOSITORY "https://github.com/Curve/lockpp" GIT_TAG v3.2.0)
    FetchContent_MakeAvailable(lockpp)
    
    target_link_libraries(<target> cr::lockpp)
    

📃 Usage

lockpp::lock<std::string> var("Test");

// Read only access
{
    auto locked = var.read();
    assert(!locked->empty());
}

// Write access
{
    auto locked = var.write();

    *write_access = "assignment";
    locked->clear();
}

// One time access
var.assign("another assignment");
assert(var.copy() == "another assignment");

lockpp also allows you to supply the mutex to be used as well as custom locks (i.e std::unique_lock, std::lock_guard).

For more examples see tests

View on GitHub
GitHub Stars9
CategoryDevelopment
Updated8mo ago
Forks2

Languages

C++

Security Score

82/100

Audited on Jul 8, 2025

No findings