Struct mmtk::scheduler::Scheduler[][src]

pub struct Scheduler<C: Context> {
    pub work_buckets: EnumMap<WorkBucketStage, WorkBucket<C>>,
    pub coordinator_work: WorkBucket<C>,
    pub worker_monitor: Arc<(Mutex<()>, Condvar)>,
    pub channel: (Sender<CoordinatorMessage<C>>, Receiver<CoordinatorMessage<C>>),
    // some fields omitted
}

Fields

work_buckets: EnumMap<WorkBucketStage, WorkBucket<C>>coordinator_work: WorkBucket<C>

Work for the coordinator thread

worker_monitor: Arc<(Mutex<()>, Condvar)>

Condition Variable for worker synchronization

channel: (Sender<CoordinatorMessage<C>>, Receiver<CoordinatorMessage<C>>)

A message channel to send new coordinator work and other actions to the coordinator thread

Implementations

impl<C: Context> Scheduler<C>[src]

pub fn new() -> Arc<Self>[src]

pub fn num_workers(&self) -> usize[src]

pub fn initialize(
    self: &'static Arc<Self>,
    num_workers: usize,
    context: &'static C,
    tls: OpaquePointer
)
[src]

pub fn initialize_worker(self: &Arc<Self>, tls: OpaquePointer)[src]

pub fn set_initializer<W: CoordinatorWork<C>>(&self, w: Option<W>)[src]

pub fn set_finalizer<W: CoordinatorWork<C>>(&self, w: Option<W>)[src]

pub fn worker_group(&self) -> Arc<WorkerGroup<C>>[src]

pub fn wait_for_completion(&self)[src]

Drain the message queue and execute coordinator work

pub fn deactivate_all(&self)[src]

pub fn reset_state(&self)[src]

pub fn add_coordinator_work(
    &self,
    work: impl CoordinatorWork<C>,
    worker: &Worker<C>
)
[src]

pub fn poll(&self, worker: &Worker<C>) -> Box<dyn Work<C>>[src]

Get a scheduable work. Called by workers

pub fn enable_stat(&self)[src]

pub fn statistics(&self) -> HashMap<String, String>[src]

impl<VM: VMBinding> Scheduler<MMTK<VM>>[src]

pub fn notify_mutators_paused(&self, mmtk: &'static MMTK<VM>)[src]

Trait Implementations

impl<C: Context> Send for Scheduler<C>[src]

impl<C: Context> Sync for Scheduler<C>[src]

Auto Trait Implementations

impl<C> !RefUnwindSafe for Scheduler<C>

impl<C> Unpin for Scheduler<C>

impl<C> !UnwindSafe for Scheduler<C>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Downcast for T where
    T: Any
[src]

impl<T> DowncastSync for T where
    T: Any + Send + Sync
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.