The Pedigree Project 0.1
Public Member Functions | Public Attributes | Private Attributes | List of all members
PendingSignalContext Class Referencefinal

#include <queued-signal.h>

+ Inheritance diagram for PendingSignalContext:
+ Collaboration diagram for PendingSignalContext:

Public Member Functions

void attach (Process *process)
 
void close ()
 
void retireThread (Thread *thread)
 
SharedPointer< PendingSignalBindingbind (Thread *thread)
 
ReadyMask query (const SharedPointer< PendingSignalBinding > &binding, uint64_t mask, ReadinessGenerations *generations=nullptr)
 
void recordChange (size_t signal=0, Thread *target=nullptr, bool processDirected=false)
 
void publish ()
 
void wake ()
 
uint64_t version () const
 
- Public Member Functions inherited from ReadinessSource
MUST_USE_RESULT bool subscribeReadiness (ReadyMask interest, const SharedPointer< ReadinessObserver > &observer, ReadinessSubscription &subscription)
 
virtual ReadinessGenerations readinessGenerations ()
 

Public Attributes

Mutex lock
 
ConditionVariable changed
 

Private Attributes

Processm_Process = nullptr
 
bool m_Closed = false
 
uint64_t m_Version = 0
 
uint64_t m_ProcessGenerations [64] = {}
 
List< SharedPointer< PendingSignalBinding >, 0 > m_Bindings
 

Additional Inherited Members

- Protected Member Functions inherited from ReadinessSource
void notifyReadiness (ReadyMask mask)
 
void closeReadiness (ReadyMask mask=ReadyInvalid|ReadyHangup)
 

Detailed Description

Durable notification state; bindings never retain a Process or Thread lease.

Definition at line 44 of file queued-signal.h.

Member Function Documentation

◆ attach()

void PendingSignalContext::attach ( Process process)

Definition at line 11 of file pending-signal.cc.

◆ bind()

SharedPointer< PendingSignalBinding > PendingSignalContext::bind ( Thread thread)

Definition at line 44 of file pending-signal.cc.

◆ close()

void PendingSignalContext::close ( )

Definition at line 16 of file pending-signal.cc.

◆ publish()

void PendingSignalContext::publish ( )

Definition at line 85 of file pending-signal.cc.

◆ query()

ReadyMask PendingSignalContext::query ( const SharedPointer< PendingSignalBinding > &  binding,
uint64_t  mask,
ReadinessGenerations generations = nullptr 
)

Definition at line 56 of file pending-signal.cc.

◆ recordChange()

void PendingSignalContext::recordChange ( size_t  signal = 0,
Thread target = nullptr,
bool  processDirected = false 
)

Definition at line 73 of file pending-signal.cc.

◆ retireThread()

void PendingSignalContext::retireThread ( Thread thread)

Definition at line 30 of file pending-signal.cc.

◆ version()

uint64_t PendingSignalContext::version ( ) const
inline

Definition at line 55 of file queued-signal.h.

◆ wake()

void PendingSignalContext::wake ( )

Definition at line 88 of file pending-signal.cc.

Member Data Documentation

◆ changed

ConditionVariable PendingSignalContext::changed

Definition at line 59 of file queued-signal.h.

◆ lock

Mutex PendingSignalContext::lock

Definition at line 58 of file queued-signal.h.

◆ m_Bindings

List<SharedPointer<PendingSignalBinding>, 0> PendingSignalContext::m_Bindings
private

Definition at line 66 of file queued-signal.h.

◆ m_Closed

bool PendingSignalContext::m_Closed = false
private

Definition at line 63 of file queued-signal.h.

◆ m_Process

Process* PendingSignalContext::m_Process = nullptr
private

Definition at line 62 of file queued-signal.h.

◆ m_ProcessGenerations

uint64_t PendingSignalContext::m_ProcessGenerations[64] = {}
private

Definition at line 65 of file queued-signal.h.

◆ m_Version

uint64_t PendingSignalContext::m_Version = 0
private

Definition at line 64 of file queued-signal.h.


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