glib::source

Function timeout_add_local_once

Source
pub fn timeout_add_local_once<F>(interval: Duration, func: F) -> SourceId
where F: FnOnce() + 'static,
Expand description

Adds a closure to be called by the default main loop at regular intervals with millisecond granularity.

func will be called repeatedly every interval milliseconds until it returns ControlFlow::Break. Precise timing is not guaranteed, the timeout may be delayed by other events. Prefer timeout_add_seconds when millisecond precision is not necessary.

The default main loop almost always is the main loop of the main thread. Thus, the closure is called on the main thread.

Different to timeout_add(), this does not require func to be Send but can only be called from the thread that owns the main context.

This function panics if called from a different thread than the one that owns the main context.

In comparison to timeout_add_local(), this only requires func to be FnOnce, and will automatically return ControlFlow::Break.