pub struct ThreadRunner { /* private fields */ }Expand description
The persistent-thread runner. submit_*/reset push Commands down the
channel; poll_* first DRAIN every ready Reply into the two demux buffers,
then pop the matching one. The SceneRunner (and thus the kernel’s resident
registry it warms) lives ENTIRELY on the thread — it is never shared — so the
only cross-thread traffic is the Send command/reply payloads.
Implementations§
Source§impl ThreadRunner
impl ThreadRunner
Trait Implementations§
Source§impl Default for ThreadRunner
Available on non-WebAssembly only.
impl Default for ThreadRunner
Available on non-WebAssembly only.
Source§impl Drop for ThreadRunner
Available on non-WebAssembly only.
impl Drop for ThreadRunner
Available on non-WebAssembly only.
Source§impl HistoryRunner for ThreadRunner
Available on non-WebAssembly only.
impl HistoryRunner for ThreadRunner
Available on non-WebAssembly only.
Source§fn submit_run(&mut self, request: HistoryRequest, generation: u64)
fn submit_run(&mut self, request: HistoryRequest, generation: u64)
Submit a history run tagged with a monotonic generation. The runner executes
it (immediately for Inline; on a background thread later) and makes the reply
available via
poll_run.Source§fn sync_parts_library(
&mut self,
revision: u64,
fetch: &mut dyn FnMut() -> PartsLibraryMap,
)
fn sync_parts_library( &mut self, revision: u64, fetch: &mut dyn FnMut() -> PartsLibraryMap, )
Bring the runner’s resident PARTS LIBRARY up to
revision, calling
fetch ONLY when it is not already there. Called immediately before
every submit_run. Read moreSource§fn poll_library_request(&mut self) -> bool
fn poll_library_request(&mut self) -> bool
True when the runner REFUSED a run because its resident parts library
could not serve it (see
Reply::NeedPartsLibrary). It has already
forgotten its copy, so the next sync_parts_library reinstalls; the
caller must re-submit the run. Never true for a runner that shares the
caller’s store.Source§fn poll_run(&mut self) -> Option<RunReply>
fn poll_run(&mut self) -> Option<RunReply>
Non-blocking: the next completed run reply, if any (drained each frame).
Source§fn submit_query(&mut self, query: MeasureQuery)
fn submit_query(&mut self, query: MeasureQuery)
Submit a per-object measurement query (answered against the runner’s warm
registry). Inline computes it immediately; a thread impl computes it on the
runner thread and surfaces it via
poll_query.Source§fn poll_query(&mut self) -> Option<MeasureReply>
fn poll_query(&mut self) -> Option<MeasureReply>
Non-blocking: the next completed measurement reply, if any.
Source§fn submit_mesh_import(&mut self, request: MeshImportRequest)
fn submit_mesh_import(&mut self, request: MeshImportRequest)
Submit RANSAC mesh reconstruction to the runner’s thread/worker.
Source§fn poll_mesh_import(&mut self) -> Option<MeshImportReply>
fn poll_mesh_import(&mut self) -> Option<MeshImportReply>
Non-blocking: the next completed mesh reconstruction, if any.
Auto Trait Implementations§
impl !RefUnwindSafe for ThreadRunner
impl !Sync for ThreadRunner
impl !UnwindSafe for ThreadRunner
impl Freeze for ThreadRunner
impl Send for ThreadRunner
impl Unpin for ThreadRunner
impl UnsafeUnpin for ThreadRunner
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more