# 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:

List of all members.

## Public Member Functions

| PthreadThreadGrp (const PthreadThreadGrp &, int nthread=-1)
| PthreadThreadGrp (const Ref< KeyVal > &)
int | start_threads ()
| Starts the threads running.
int | wait_threads ()
| Wait for all the threads to complete.
void | add_thread (int i, Thread *t)
| Assigns a Thread object to each thread.
void | add_thread (int i, Thread *t, int priority)
| Like add_thread(threadnum, thread), but assign a priority that the thread is to use.
Ref< ThreadLock > | new_lock ()
| Return a local object.
ThreadGrp * | clone (int nthread=-1)
| Create a ThreadGrp like the current one.

## Detailed Description

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

## Member Function Documentation

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.

void sc::PthreadThreadGrp::add_thread | ( | int | threadnum,
|  | Thread * | thread |
| ) |  |  | `[inline, virtual]`

Assigns a Thread object to each thread.

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

Reimplemented from sc::ThreadGrp.

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.

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

- thpthd.h