Skip to content

Latest commit

 

History

History
56 lines (30 loc) · 3.18 KB

File metadata and controls

56 lines (30 loc) · 3.18 KB
graph LR
    Synchronous_Event_Dispatcher["Synchronous Event Dispatcher"]
    Asynchronous_Event_Dispatcher["Asynchronous Event Dispatcher"]
    Active_Receiver_Iterator["Active Receiver Iterator"]
    Receiver_Cleanup_Handler["Receiver Cleanup Handler"]
    Synchronous_Event_Dispatcher -- "calls" --> Active_Receiver_Iterator
    Asynchronous_Event_Dispatcher -- "calls" --> Active_Receiver_Iterator
    Active_Receiver_Iterator -- "calls" --> Receiver_Cleanup_Handler
Loading

CodeBoardingDemoContact

Details

The Event Dispatcher subsystem is responsible for the core mechanism of triggering and managing the execution of all receivers connected to a specific signal when that signal is "sent." Its boundaries are primarily defined by the send and send_async methods of the Signal class, which serve as the entry points for initiating the dispatch process.

Synchronous Event Dispatcher

The primary component responsible for synchronously triggering the execution of all receivers connected to a Signal instance. It iterates through the active receivers and invokes them sequentially.

Related Classes/Methods:

Asynchronous Event Dispatcher

The component responsible for asynchronously triggering the execution of all receivers connected to a Signal instance. It iterates through the active receivers and invokes them using an asynchronous mechanism, allowing for non-blocking operations.

Related Classes/Methods:

Active Receiver Iterator

A utility component that provides an iterable of currently active and valid receivers for a given signal. It handles the complexities of weak references and ensures that only callable receivers are returned for dispatch, filtering out expired or invalid ones.

Related Classes/Methods:

Receiver Cleanup Handler

An internal component responsible for cleaning up references to receivers, particularly weak references that are no longer valid or have been explicitly disconnected. This ensures that the signal's receiver list remains clean and efficient.

Related Classes/Methods: