CVD::RunnableBatch Class Reference

#include <runnable_batch.h>

List of all members.


Detailed Description

This class provides a simple job manager for tasks derived from CVD:Runnable.

The class operates using a small pool of threads, so new tasks are run in existing free threads, not new ones. Overhead will only be due to locking in MessageQueue and shared_ptr.

Definition at line 17 of file runnable_batch.h.


Public Member Functions

 RunnableBatch (unsigned int p)
void join ()
void schedule (std::tr1::shared_ptr< Runnable > r)
 ~RunnableBatch ()

Classes

class  RunMessageInThread

Constructor & Destructor Documentation

CVD::RunnableBatch::RunnableBatch ( unsigned int  p  ) 

Construct a job manager pallelism Number of threads to use.

Note that 1 thread will cause jobs to be executed in one new thread. 0 threads will cause the jobs to be executed in the current thread. This will prevent thread spawning and should make debugging easier. This is the behaviour if CVD is compiled without threading support.

CVD::RunnableBatch::~RunnableBatch (  ) 

Destruct the job manager.

This will wait for all threads to finish and terminate.


Member Function Documentation

void CVD::RunnableBatch::join (  ) 

Wait until all pending tasks have been run, then terminate all threads.

void CVD::RunnableBatch::schedule ( std::tr1::shared_ptr< Runnable r  ) 

Put a task on the queue.

This will be run at some point in the future. Job lifetime is managed by shared_ptr, so they may be managed wither by RunnableBatch or by the caller.


The documentation for this class was generated from the following file:
Generated on Wed Feb 18 10:23:08 2009 for CVD by  doxygen 1.5.3