pub struct NativeMainExecutor(/* private fields */);Expand description
Dispatches work to the platform main thread.
This is deliberately a separate type from NativeExecutor: only targets
with an established main thread can produce one, so handing a main-thread
executor to an API that needs one is checked when you construct it rather
than when the first task is spawned.
If you own an event loop, do not use this type. Implement
LocalExecutor over your own loop instead — winit, GTK/glib, or a frame
pump — so tasks run on the thread that owns your windows. This type is for
hosts that have no loop of their own.
Implementations§
Source§impl NativeMainExecutor
impl NativeMainExecutor
Sourcepub fn new() -> Option<Self>
pub fn new() -> Option<Self>
Returns None when no main thread has been established.
That is never the case on Apple and web targets. On Android it means
[register_android_main_thread] has not run yet; under the polyfill it
means no thread is running
polyfill::executor::start_main_executor.
Sourcepub fn with_priority(priority: Priority) -> Option<Self>
pub fn with_priority(priority: Priority) -> Option<Self>
Like NativeMainExecutor::new, with an explicit priority.
pub fn spawn_main<Fut>(&self, fut: Fut) -> AsyncTask<Fut::Output> ⓘ
Sourcepub fn spawn_main_local<Fut>(
&self,
fut: Fut,
) -> <Self as LocalExecutor>::Task<Fut::Output>where
Fut: Future + 'static,
pub fn spawn_main_local<Fut>(
&self,
fut: Fut,
) -> <Self as LocalExecutor>::Task<Fut::Output>where
Fut: Future + 'static,
§Panics
Under the polyfill, panics unless called from the thread running
polyfill::executor::start_main_executor; that backend runs the task
inline rather than dispatching it.
Trait Implementations§
Source§impl Debug for NativeMainExecutor
impl Debug for NativeMainExecutor
Source§impl LocalExecutor for NativeMainExecutor
§Panics
Under the polyfill, panics if not called from the registered main thread.
impl LocalExecutor for NativeMainExecutor
§Panics
Under the polyfill, panics if not called from the registered main thread.