---
name: "sc_PthreadThreadGrp"
section: "3"
platform: "linux"
package: "libsc-doc"
version: "2.3.1-22"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/sc_PthreadThreadGrp"
---

# sc\_PthreadThreadGrp(3)

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

## NAME

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

## SYNOPSIS

`#include <thpthd.h>`

Inherits **sc::ThreadGrp**.

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

### Additional Inherited Members

## 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)` [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**.

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**.

### Ref\< ThreadLock \> sc::PthreadThreadGrp::new\_lock ()` [virtual]`

Return a local object.

Implements **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**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
