Class ControlledWorkerScheduler<T>

    • Constructor Detail

      • ControlledWorkerScheduler

        public ControlledWorkerScheduler​(int nWorkers,
                                         String name)
        Construct a new instance with the specified number of workers and the given name.
        Parameters:
        nWorkers -
        name -
    • Method Detail

      • schedule

        public void schedule​(ParallelTask<T> task)
        Schedule the specified parallel task.
        Specified by:
        schedule in interface Scheduler<T>
        Parameters:
        task - the task to schedule
      • scheduleAll

        public void scheduleAll​(List<ParallelTask<T>> tasks,
                                ParallelExecutor<T> control)
        Schedule the given tasks and inform about finish using the same lock, i.e. all tasks are scheduled one after the other.
        Parameters:
        tasks -
        control -
      • getTotalNumberOfWorkers

        public int getTotalNumberOfWorkers()
      • getNumberOfTasks

        public int getNumberOfTasks()
      • abort

        public void abort()
        Description copied from interface: Scheduler
        Abort the execution of running and queued tasks.
        Specified by:
        abort in interface Scheduler<T>
      • done

        public void done()
        Description copied from interface: Scheduler
        Inform the scheduler that a certain task is done.
        Specified by:
        done in interface Scheduler<T>
      • informFinish

        public void informFinish()
        Description copied from interface: Scheduler
        Inform the scheduler that no more tasks will be scheduled.
        Specified by:
        informFinish in interface Scheduler<T>
      • informFinish

        public void informFinish​(ParallelExecutor<T> control)
        Inform this scheduler that the specified control instance will no longer submit tasks.
        Parameters:
        control -
      • isRunning

        public boolean isRunning()
        Description copied from interface: Scheduler
        Determine if the scheduler has unfinished tasks.
        Specified by:
        isRunning in interface Scheduler<T>
        Returns:
        whether the scheduler is running
      • isRunning

        public boolean isRunning​(ParallelExecutor<T> control)
        Determine if there are still task running or queued for the specified control.
        Parameters:
        control -
        Returns:
        true, if there are unfinished tasks, false otherwise
      • toss

        public void toss​(Exception e)
        Description copied from interface: Scheduler
        Toss an exception to the scheduler.
        Specified by:
        toss in interface Scheduler<T>