pub struct JobQueue<'gctx> {
queue: DependencyQueue<Unit, Artifact, Job>,
counts: HashMap<PackageId, usize>,
timings: Timings<'gctx>,
}
Expand description
This structure is backed by the DependencyQueue
type and manages the
queueing of compilation steps for each package. Packages enqueue units of
work and then later on the entire graph is converted to DrainState
and
executed.
Fields§
§queue: DependencyQueue<Unit, Artifact, Job>
§counts: HashMap<PackageId, usize>
§timings: Timings<'gctx>
Implementations§
Source§impl<'gctx> JobQueue<'gctx>
impl<'gctx> JobQueue<'gctx>
pub fn new(bcx: &BuildContext<'_, 'gctx>) -> JobQueue<'gctx>
pub fn enqueue( &mut self, build_runner: &BuildRunner<'_, 'gctx>, unit: &Unit, job: Job, ) -> CargoResult<()>
Sourcepub fn execute(
self,
build_runner: &mut BuildRunner<'_, '_>,
plan: &mut BuildPlan,
) -> CargoResult<()>
pub fn execute( self, build_runner: &mut BuildRunner<'_, '_>, plan: &mut BuildPlan, ) -> CargoResult<()>
Executes all jobs necessary to build the dependency graph.
This function will spawn off config.jobs()
workers to build all of the
necessary dependencies, in order. Freshness is propagated as far as
possible along each dependency chain.
Auto Trait Implementations§
impl<'gctx> Freeze for JobQueue<'gctx>
impl<'gctx> !RefUnwindSafe for JobQueue<'gctx>
impl<'gctx> !Send for JobQueue<'gctx>
impl<'gctx> !Sync for JobQueue<'gctx>
impl<'gctx> Unpin for JobQueue<'gctx>
impl<'gctx> !UnwindSafe for JobQueue<'gctx>
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<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeSendSync for T
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 576 bytes