Google

Main Page   Class Hierarchy   Compound List   File List   Compound Members   Related Pages  

sc::ThreadGrp Class Reference

The ThreadGrp abstract class provides a means to manage separate threads of control. More...

#include <thread.h>

Inheritance diagram for sc::ThreadGrp:

Inheritance graph
[legend]
Collaboration diagram for sc::ThreadGrp:

Collaboration graph
[legend]
List of all members.

Public Methods

 ThreadGrp ()
 ThreadGrp (const Ref< KeyVal > &)
 ThreadGrp (const ThreadGrp &, int nthread=-1)
virtual ~ThreadGrp ()
virtual void add_thread (int threadnum, Thread *thread)
 Assigns a Thread object to each thread. More...

virtual void add_thread (int threadnum, Thread *thread, int priority)
 Like add_thread(threadnum, thread), but assign a priority that the thread is to use. More...

int nthread () const
 The number of threads that will be run by start_thread.

void delete_threads ()
virtual int start_threads ()=0
 Starts the threads running. More...

virtual int wait_threads ()=0
 Wait for all the threads to complete. More...

virtual Ref< ThreadLocknew_lock ()=0
 Return a local object.

virtual ThreadGrp * clone (int nthread=-1)
 Create a ThreadGrp like the current one. More...


Static Public Methods

void set_default_threadgrp (const Ref< ThreadGrp > &)
ThreadGrp * get_default_threadgrp ()
ThreadGrp * initial_threadgrp (int &argc, char **argv)

Protected Attributes

Thread ** threads_
int nthread_

Detailed Description

The ThreadGrp abstract class provides a means to manage separate threads of control.


Member Function Documentation

virtual void sc::ThreadGrp::add_thread int    threadnum,
Thread   thread,
int    priority
[virtual]
 

Like add_thread(threadnum, thread), but assign a priority that the thread is to use.

The member is primarily for experimentation, the priority argument is currently not well defined and ignored.

Reimplemented in sc::PthreadThreadGrp.

virtual void sc::ThreadGrp::add_thread int    threadnum,
Thread   thread
[virtual]
 

Assigns a Thread object to each thread.

If 0 is assigned to a thread, then that thread will be skipped.

Reimplemented in sc::PthreadThreadGrp.

virtual ThreadGrp* sc::ThreadGrp::clone int    nthread = -1 [virtual]
 

Create a ThreadGrp like the current one.

If nthread is given, the new ThreadGrp will attempt to support that number of threads, but the actual number supported may be less. If nthread is -1, the number of threads in the current group will be used.

Reimplemented in sc::PthreadThreadGrp.

virtual int sc::ThreadGrp::start_threads   [pure virtual]
 

Starts the threads running.

Thread 0 will be run by the thread that calls start_threads.

Implemented in sc::PthreadThreadGrp.

virtual int sc::ThreadGrp::wait_threads   [pure virtual]
 

Wait for all the threads to complete.

This must be called before start_threads is called again or the object is destroyed.

Implemented in sc::PthreadThreadGrp.


The documentation for this class was generated from the following file:
Generated at Fri Jan 10 08:17:10 2003 for MPQC 2.1.3 using the documentation package Doxygen 1.2.14.