Edit

Share via


Semaphore Class

Represents a synchronization object that controls a shared resource that can support a limited number of users.

Syntax

class Semaphore : public HandleT<HandleTraits::SemaphoreTraits>;

Members

Public Typedefs

Name Description
SyncLock A synonym for a class that supports synchronous locks.

Public Constructors

Name Description
Semaphore::Semaphore Initializes a new instance of the Semaphore class.

Public Methods

Name Description
Semaphore::Lock Waits until the current object, or the object associated with the specified handle, is in the signaled state or the specified time-out interval has elapsed.

Public Operators

Name Description
Semaphore::operator= Moves the specified handle from a Semaphore object to the current Semaphore object.

Inheritance Hierarchy

Semaphore

Requirements

Header: corewrappers.h

Namespace: Microsoft::WRL::Wrappers

Semaphore::Lock

Waits until the current object, or the Semaphore object associated with the specified handle, is in the signaled state or the specified time-out interval has elapsed.

SyncLock Lock(
   DWORD milliseconds = INFINITE
);

static SyncLock Lock(
   HANDLE h,
   DWORD milliseconds = INFINITE
);

Parameters

milliseconds
The time-out interval, in milliseconds. The default value is INFINITE, which waits indefinitely.

h
A handle to a Semaphore object.

Return Value

A Details::SyncLockWithStatusT<HandleTraits::SemaphoreTraits>

Semaphore::operator=

Moves the specified handle from a Semaphore object to the current Semaphore object.

Semaphore& operator=(
   _Inout_ Semaphore&& h
);

Parameters

h
Rvalue-reference to a Semaphore object.

Return Value

A reference to the current Semaphore object.

Semaphore::Semaphore

Initializes a new instance of the Semaphore class.

explicit Semaphore(
   HANDLE h
);

WRL_NOTHROW Semaphore(
   _Inout_ Semaphore&& h
);

Parameters

h
A handle or an rvalue-reference to a Semaphore object.