Mantid
Loading...
Searching...
No Matches
Private Member Functions | List of all members
Mantid::Kernel::ThreadSchedulerLIFO Class Reference

A Last-In-First-Out Thread Scheduler. More...

#include <ThreadScheduler.h>

Inheritance diagram for Mantid::Kernel::ThreadSchedulerLIFO:
Mantid::Kernel::ThreadSchedulerFIFO Mantid::Kernel::ThreadScheduler

Private Member Functions

std::shared_ptr< Taskpop (size_t threadnum) override
 Retrieves the next Task to execute. More...
 

Additional Inherited Members

- Public Member Functions inherited from Mantid::Kernel::ThreadSchedulerFIFO
void clear () override
 Empty out the queue. More...
 
bool empty () override
 
std::shared_ptr< Taskpop (size_t threadnum) override
 Retrieves the next Task to execute. More...
 
void push (std::shared_ptr< Task > newTask) override
 Add a Task to the queue. More...
 
size_t size () override
 Returns the size of the queue. More...
 
 ThreadSchedulerFIFO ()
 
 ~ThreadSchedulerFIFO () override
 Destructor. More...
 
- Public Member Functions inherited from Mantid::Kernel::ThreadScheduler
virtual void abort (std::runtime_error exception)
 Signal to the scheduler that a task is complete. More...
 
virtual void clear ()=0
 Empty out the queue. More...
 
virtual bool empty ()=0
 Returns true if the queue is empty. More...
 
virtual void finished (Task *task, size_t threadnum)
 Signal to the scheduler that a task is complete. More...
 
bool getAborted ()
 Returns true if the execution was aborted. More...
 
std::runtime_error getAbortException ()
 Returns the exception that was caught, if any. More...
 
virtual std::shared_ptr< Taskpop (size_t threadnum)=0
 Retrieves the next Task to execute. More...
 
virtual void push (std::shared_ptr< Task > newTask)=0
 Add a Task to the queue. More...
 
virtual size_t size ()=0
 Returns the size of the queue. More...
 
 ThreadScheduler ()
 Constructor. More...
 
double totalCost ()
 Returns the total cost of all Task's in the queue. More...
 
double totalCostExecuted ()
 Returns the total cost of all Task's in the queue. More...
 
virtual ~ThreadScheduler ()=default
 Destructor. More...
 
- Protected Attributes inherited from Mantid::Kernel::ThreadSchedulerFIFO
std::deque< std::shared_ptr< Task > > m_queue
 Queue of tasks. More...
 
- Protected Attributes inherited from Mantid::Kernel::ThreadScheduler
bool m_aborted
 The run was aborted due to an exception. More...
 
std::runtime_error m_abortException
 The exception that aborted the run. More...
 
double m_cost
 Total cost of all tasks. More...
 
double m_costExecuted
 Accumulated cost of tasks that have been executed (popped) More...
 
std::mutex m_queueLock
 Mutex to prevent simultaneous access to the queue. More...
 

Detailed Description

A Last-In-First-Out Thread Scheduler.

A queue of tasks is maintained; the last Task added is the first one returned.

Definition at line 197 of file ThreadScheduler.h.

Member Function Documentation

◆ pop()

std::shared_ptr< Task > Mantid::Kernel::ThreadSchedulerLIFO::pop ( size_t  threadnum)
inlineoverrideprivatevirtual

Retrieves the next Task to execute.

Parameters
threadnum:: ID of the calling thread.
Returns
a Task pointer to execute.

Reimplemented from Mantid::Kernel::ThreadSchedulerFIFO.

Definition at line 200 of file ThreadScheduler.h.

References UNUSED_ARG.


The documentation for this class was generated from the following file: