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