template <typename Self, zx_rights_t def_rights, zx_signals_t extra_signals = 0u, lockdep::LockFlags Flags = lockdep::LockFlagsNone>

class PeeredDispatcher

Defined at line 427 of file ../../zircon/kernel/object/include/object/dispatcher.h

Protected Members

const fbl::Canary<CanaryTag<Self>::magic> canary_

Public Methods

zx_rights_t default_rights ()

Defined at line 429 of file ../../zircon/kernel/object/include/object/dispatcher.h

void PeeredDispatcher<Self, def_rights, extra_signals, Flags> (fbl::RefPtr<PeerHolder<Self, Flags>> holder, zx_signals_t signals)

At construction, the object is asserting |signals|.

Defined at line 432 of file ../../zircon/kernel/object/include/object/dispatcher.h

void ~PeeredDispatcher<Self, def_rights, extra_signals, Flags> ()

Defined at line 434 of file ../../zircon/kernel/object/include/object/dispatcher.h

zx_koid_t get_related_koid ()

Defined at line 436 of file ../../zircon/kernel/object/include/object/dispatcher.h

bool is_waitable ()

Defined at line 437 of file ../../zircon/kernel/object/include/object/dispatcher.h

zx_status_t user_signal_self (uint32_t clear_mask, uint32_t set_mask)

Defined at line 439 of file ../../zircon/kernel/object/include/object/dispatcher.h

zx_status_t user_signal_peer (uint32_t clear_mask, uint32_t set_mask)

Defined at line 451 of file ../../zircon/kernel/object/include/object/dispatcher.h

void on_zero_handles ()

All subclasses of PeeredDispatcher must implement a public

|void on_zero_handles_locked()|. The peer lifetime management

(i.e. the peer zeroing) is centralized here.

Defined at line 468 of file ../../zircon/kernel/object/include/object/dispatcher.h

bool PeerHasClosed ()

Returns true if the peer has closed. Once the peer has closed it

will never re-open.

Defined at line 485 of file ../../zircon/kernel/object/include/object/dispatcher.h

Protected Methods

Lock<CriticalMutex> * get_lock ()

Defined at line 491 of file ../../zircon/kernel/object/include/object/dispatcher.h

void InitPeer (fbl::RefPtr<Self> peer)

Initialize this dispatcher's peer field.

This method is logically part of the class constructor and must be called exactly once, during

initialization, prior to any other thread obtaining a reference to the object. These

constraints allow for an optimization where fields are accessed without acquiring the lock,

hence the TA_NO_THREAD_SAFETY_ANALYSIS annotation.

Defined at line 499 of file ../../zircon/kernel/object/include/object/dispatcher.h

const fbl::RefPtr<Self> & peer ()

Defined at line 506 of file ../../zircon/kernel/object/include/object/dispatcher.h

zx_koid_t peer_koid ()

Defined at line 507 of file ../../zircon/kernel/object/include/object/dispatcher.h