CyberEngineMkIII
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Semaphore.hpp
Go to the documentation of this file.
1 namespace CYB {
3  namespace API {
9  class Semaphore : public Interop::Allocatable {
10  public:
16  public:
18  virtual ~Semaphore() = default;
25  virtual void SignalN(const unsigned long long AN) noexcept = 0;
31  virtual void SignalAll(void) noexcept = 0;
37  virtual void Wait(void) noexcept = 0;
38  };
39  };
40 };
42 CYB_SET_ALLOCATABLE_ID(Semaphore);
43 //! @endcond
A reliable wait queue.
Definition: Semaphore.hpp:9
Used as a base class by all constructors.
Definition: Constructor.hpp:56
Constructor< void > EmptyConstructor
Constructor<void> alias.
virtual void SignalAll(void) noexcept=0
Signal all current waiters of this semaphore.
virtual ~Semaphore()=default
Destroy a Semaphore. Semaphore must have no waiters.
virtual void SignalN(const unsigned long long AN) noexcept=0
Signal N waiters of this semaphore. Will not signal more than are currently waiting.
virtual void Wait(void) noexcept=0
Wait indefinitely for a signal from this semaphore. Will be placed last into the queue.
Defines the base class for allocatable engine objects.
Definition: Allocatable.hpp:7