sc::PthreadThreadGrp Class Reference

The PthreadThreadGrp class privides a concrete thread group appropriate for an environment where pthreads is available. More...

`#include <thpthd.h>`

Inheritance diagram for sc::PthreadThreadGrp:
[legend]
Collaboration diagram for sc::PthreadThreadGrp:
[legend]

## Public Member Functions

| PthreadThreadGrp (const PthreadThreadGrp &, int nthread=-1)
| PthreadThreadGrp (const Ref< KeyVal > &)
int | start_threads ()
| Starts the threads running. More...
int | wait_threads ()
| Wait for all the threads to complete. More...
void | add_thread (int i, Thread *t)
| Assigns a Thread object to each thread. More...
void | add_thread (int i, Thread *t, int priority)
| Like add_thread(threadnum, thread), but assign a priority that the thread is to use. More...
Ref< ThreadLock > | new_lock ()
| Return a local object.
ThreadGrp * | clone (int nthread=-1)
| Create a ThreadGrp like the current one. More...
Public Member Functions inherited from sc::ThreadGrp
| ThreadGrp (const Ref< KeyVal > &)
| ThreadGrp (const ThreadGrp &, int nthread=-1)
int | nthread () const
| The number of threads that will be run by start_thread.
void | delete_threads ()
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. More...
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. More...
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. More...

## Additional Inherited Members

Static Public Member Functions inherited from sc::ThreadGrp
static void | set_default_threadgrp (const Ref< ThreadGrp > &)
static ThreadGrp * | get_default_threadgrp ()
static ThreadGrp * | initial_threadgrp (int &argc, char **argv)
Protected Member Functions inherited from sc::RefCount
| RefCount (const RefCount &)
RefCount & | operator= (const RefCount &)
Protected Attributes inherited from sc::ThreadGrp
Thread ** | threads_
int | nthread_

## Detailed Description

The PthreadThreadGrp class privides a concrete thread group appropriate for an environment where pthreads is available.

## Member Function Documentation

void sc::PthreadThreadGrp::add_thread | ( | int | threadnum,
|  | Thread * | thread
| ) |  |

inlinevirtual

Assigns a Thread object to each thread.

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

Reimplemented from sc::ThreadGrp.

References sc::ThreadGrp::add_thread().

void sc::PthreadThreadGrp::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 from sc::ThreadGrp.

ThreadGrp* sc::PthreadThreadGrp::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 from sc::ThreadGrp.

int sc::PthreadThreadGrp::start_threads | ( |  | ) |

virtual

Starts the threads running.

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

Implements sc::ThreadGrp.

int sc::PthreadThreadGrp::wait_threads | ( |  | ) |

virtual

Wait for all the threads to complete.

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

Implements sc::ThreadGrp.

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

- thpthd.h