xbmc
Public Member Functions | Friends | List of all members
XbmcThreads::CEventGroup Class Reference

CEventGroup is a means of grouping CEvents to wait on them together. More...

#include <Event.h>

Public Member Functions

 CEventGroup (std::initializer_list< CEvent *> events)
 Create a CEventGroup from a number of CEvents.
 
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 More...
 
int getNumWaits ()
 This is mostly for testing. More...
 

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.

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()

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


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