Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
Loading...
Searching...
No Matches
XbmcThreads::CEventGroup Class Reference

CEventGroup is a means of grouping CEvents to wait on them together. It is equivalent to WaitOnMultipleObject that returns when "any" Event in the group signaled. More...

#include <Event.h>

Public Member Functions

 CEventGroup (std::initializer_list< CEvent * > events)
 Create a CEventGroup from a number of CEvents.
 
 ~CEventGroup ()
 
CEventwait ()
 This will block until any one of the CEvents in the group are signaled at which point a pointer to that CEvents will be returned.
 
template<typename Rep , typename Period >
CEventwait (std::chrono::duration< Rep, Period > duration)
 locking is ALWAYS done in this order: CEvent::groupListMutex -> CEventGroup::mutex -> CEvent::mutex
 
int getNumWaits ()
 This is mostly for testing. It allows a thread to make sure there are the right amount of other threads waiting.
 

Friends

class ::CEvent
 

Detailed Description

CEventGroup is a means of grouping CEvents to wait on them together. It is equivalent to WaitOnMultipleObject that returns when "any" Event in the group signaled.

Constructor & Destructor Documentation

◆ CEventGroup()

XbmcThreads::CEventGroup::CEventGroup ( std::initializer_list< CEvent * > events)

Create a CEventGroup from a number of CEvents.

◆ ~CEventGroup()

XbmcThreads::CEventGroup::~CEventGroup ( )

Member Function Documentation

◆ getNumWaits()

int XbmcThreads::CEventGroup::getNumWaits ( )
inline

This is mostly for testing. It allows a thread to make sure there are the right amount of other threads waiting.

◆ wait() [1/2]

CEvent * XbmcThreads::CEventGroup::wait ( )

This will block until any one of the CEvents in the group are signaled at which point a pointer to that CEvents will be returned.

This will block until any one of the CEvents in the group are signaled at which point a pointer to that CEvents will be returned.

◆ wait() [2/2]

template<typename Rep , typename Period >
CEvent * XbmcThreads::CEventGroup::wait ( std::chrono::duration< Rep, Period > duration)
inline

locking is ALWAYS done in this order: CEvent::groupListMutex -> CEventGroup::mutex -> CEvent::mutex

Notice that this method doesn't grab the CEvent::groupListMutex at all. This is fine. It just grabs the CEventGroup::mutex and THEN the individual

Friends And Related Symbol Documentation

◆ ::CEvent

friend class ::CEvent
friend

The documentation for this class was generated from the following files: