home | help
sc::ThreadGrp(3)		      MPQC			sc::ThreadGrp(3)

NAME
     sc::ThreadGrp  -  The  ThreadGrp  abstract class provides a means to manage
     separate threads of control.

SYNOPSIS
     #include <thread.h>

     Inherits sc::DescribedClass.

     Inherited by sc::ProcThreadGrp, sc::PthreadThreadGrp,  and  sc::PumaThread-
     Grp.

   Public Member Functions
     ThreadGrp (const Ref< KeyVal > &)
     ThreadGrp (const ThreadGrp &, int nthread=-1)
     virtual void add_thread (int threadnum, Thread *thread)
	 Assigns a Thread object to each thread.
     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.
     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.
     virtual int wait_threads ()=0
	 Wait for all the threads to complete.
     virtual Ref< ThreadLock > new_lock ()=0
	 Return a local object.
     virtual ThreadGrp * clone (int nthread=-1)
	 Create a ThreadGrp like the current one.

     Public Member Functions inherited from sc::DescribedClass
     DescribedClass (const DescribedClass &)
     DescribedClass & operator= (const DescribedClass &)
     ClassDesc * class_desc () const  throw ()
	 This returns the unique pointer to the ClassDesc corresponding  to  the
	 given type_info object.
     const char * class_name () const
	 Return the name of the object's exact type.
     int class_version () const
	 Return the version of the class.
     virtual void print (std::ostream &=ExEnv::out0()) const
	 Print the object.

     Public Member Functions inherited from sc::RefCount
     int lock_ptr () const
	 Lock this object.
     int unlock_ptr () const
	 Unlock this object.
     void use_locks (bool inVal)
	 start and stop using locks on this object
     refcount_t nreference () const
	 Return the reference count.
     refcount_t reference ()
	 Increment the reference count and return the new count.
     refcount_t dereference ()
	 Decrement the reference count and return the new count.
     int managed () const
     void unmanage ()
	 Turn off the reference counting mechanism for this object.
     int managed () const
	 Return 1 if the object is managed. Otherwise return 0.

     Public Member Functions inherited from sc::Identity
     Identifier identifier ()
	 Return the Identifier for this argument.

   Static Public Member Functions
     static void set_default_threadgrp (const Ref< ThreadGrp > &)
     static ThreadGrp * get_default_threadgrp ()
     static ThreadGrp * initial_threadgrp (int &argc, char **argv)

   Protected Attributes
     Thread ** threads_
     int nthread_

   Additional Inherited Members
     Protected Member Functions inherited from sc::RefCount
     RefCount (const RefCount &)
     RefCount & operator= (const RefCount &)

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) [vir-
     tual]
     Assigns  a Thread object to each thread. If 0 is assigned to a thread, then
     that thread will be skipped.

     Reimplemented in sc::PthreadThreadGrp.

     Referenced by sc::PthreadThreadGrp::add_thread().

   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  argu-
     ment is currently not well defined and ignored.

     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, and sc::ProcThreadGrp.

   virtual Ref< ThreadLock > sc::ThreadGrp::new_lock () [pure virtual]
     Return a local object.

     Implemented in sc::PthreadThreadGrp, sc::PumaThreadGrp, and sc::ProcThread-
     Grp.

   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, sc::PumaThreadGrp, and sc::ProcThread-
     Grp.

   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, sc::PumaThreadGrp, and sc::ProcThread-
     Grp.

Author
     Generated automatically by Doxygen for MPQC from the source code.

Version 2.3.1			 Thu Sep 3 2026 		sc::ThreadGrp(3)

home | help