dispenso 1.4.1
A library for task parallelism
Loading...
Searching...
No Matches
Synchronization

Synchronization primitives. More...

Files

file  latch.h
 
file  rw_lock.h
 

Detailed Description

Synchronization primitives.

Locks, latches, and other synchronization primitives for coordinating between threads.

Example: Latch for Thread Coordination

#include <dispenso/latch.h>
dispenso::Latch latch(4); // Wait for 4 threads
dispenso::parallel_for(0, 4, [&](size_t) {
// Do initialization work...
latch.arrive_and_wait(); // Synchronize before continuing
// All threads proceed together from here
});

Example: RWLock for Reader/Writer Access

std::vector<int> sharedData;
// Reader (multiple allowed concurrently)
{
std::shared_lock<dispenso::RWLock> guard(lock);
int value = sharedData[0];
}
// Writer (exclusive access)
{
std::unique_lock<dispenso::RWLock> guard(lock);
sharedData.push_back(42);
}