Skip to main content

ferroui_base/threading/
mod.rs

1//! The dispatcher: the per-thread work queue that everything UI-related
2//! runs on, and the one place where other threads can hand work to a UI
3//! thread.
4
5mod dispatcher;
6mod dispatcher_event_args;
7mod dispatcher_exceptions;
8mod dispatcher_frame;
9mod dispatcher_invoke;
10mod dispatcher_main_loop;
11mod dispatcher_operation;
12mod dispatcher_options;
13mod dispatcher_priority;
14mod dispatcher_priority_awaitable;
15mod dispatcher_priority_queue;
16mod dispatcher_task;
17mod dispatcher_queue;
18mod dispatcher_thread_storage;
19mod dispatcher_timer;
20mod dispatcher_timers;
21mod dispatcher_unhandled_exception_event_args;
22mod dispatcher_unhandled_exception_filter_event_args;
23mod ferro_synchronization_context;
24mod i_dispatcher;
25mod i_dispatcher_impl;
26
27pub use ferroui_system::threading::{CancellationToken, CancellationTokenRegistration, CancellationTokenSource};
28pub use dispatcher::{
29    Dispatcher, DispatcherUnhandledExceptionEventHandler, DispatcherUnhandledExceptionFilterEventHandler,
30};
31pub use dispatcher_event_args::DispatcherEventArgs;
32pub use dispatcher_frame::DispatcherFrame;
33pub use dispatcher_main_loop::DispatcherProcessingDisabled;
34pub use dispatcher_operation::{
35    DispatcherException, DispatcherOperation, DispatcherOperationStatus, OperationCanceledError,
36};
37pub use dispatcher_options::DispatcherOptions;
38pub use dispatcher_priority::{DispatcherPriority, DispatcherPriorityOutOfRangeError};
39pub use dispatcher_invoke::DispatcherInvokeError;
40pub use dispatcher_priority_awaitable::{DispatcherPriorityAwaitable, DispatcherPriorityTaskAwaitable};
41pub use dispatcher_task::DispatcherTask;
42pub use ferro_synchronization_context::{DispatcherTaskScheduler, FerroSynchronizationContext, RestoreContext};
43mod thread_safe_object_pool;
44pub use thread_safe_object_pool::ThreadSafeObjectPool;
45pub use dispatcher_thread_storage::UnitTestDispatcherScope;
46pub use dispatcher_timer::DispatcherTimer;
47pub use dispatcher_unhandled_exception_event_args::DispatcherUnhandledExceptionEventArgs;
48pub use dispatcher_unhandled_exception_filter_event_args::DispatcherUnhandledExceptionFilterEventArgs;
49pub use i_dispatcher::IDispatcher;
50pub use i_dispatcher_impl::{
51    DispatcherImplEvent, IControlledDispatcherImpl, IDispatcherImpl, IDispatcherImplWithExplicitBackgroundProcessing,
52    IDispatcherImplWithPendingInput, IDispatcherSignal, IPlatformThreadingSignal,
53};
54
55#[cfg(test)]
56mod dispatcher_priority_queue_tests;
57#[cfg(test)]
58mod dispatcher_tests;
59#[cfg(test)]
60mod dispatcher_tests_exception;