userver: userver/engine/semaphore.hpp File Reference
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
semaphore.hpp File Reference

Detailed Description

Class that allows up to max_simultaneous_locks concurrent accesses to the critical section. It ignores task cancellation, unlike CancellableSemaphore.

Definition in file semaphore.hpp.

Go to the source code of this file.

#include <atomic>
#include <chrono>
#include <shared_mutex>
#include <stdexcept>
#include <userver/engine/deadline.hpp>
#include <userver/engine/impl/wait_list_fwd.hpp>
#include <memory>
#include <userver/utils/assert.hpp>
+ Include dependency graph for semaphore.hpp:
+ This graph shows which files directly or indirectly include this file:

Classes

class  engine::UnreachableSemaphoreLockError
 
class  engine::SemaphoreLockCancelledError
 Thrown by engine::CancellableSemaphore on current task cancellation. More...
 
class  engine::CancellableSemaphore
 Class that allows up to max_simultaneous_locks concurrent accesses to the critical section. It honours task cancellation, unlike Semaphore. More...
 
class  engine::Semaphore
 Class that allows up to max_simultaneous_locks concurrent accesses to the critical section. It ignores task cancellation, unlike CancellableSemaphore. More...
 
class  engine::SemaphoreLock
 A replacement for std::shared_lock that accepts Deadline arguments. More...
 

Namespaces

namespace  engine
 Asynchronous engine primitives.