pthread_attr_init(3THR) は、オブジェクトの属性をデフォルト値に初期化します。その記憶領域は、実行中にスレッドシステムによって割り当てられます。
プロトタイプ: int pthread_attr_init(pthread_attr_t *tattr); |
#include <pthread.h> pthread_attr_t tattr; int ret; /* 属性をデフォルト値に初期化する */ ret = pthread_attr_init(&tattr); |
表 3–1 に属性 (tattr) のデフォルト値を示します。
表 3–1 tattr のデフォルト属性値
属性 |
値 |
結果 |
---|---|---|
scope |
PTHREAD_SCOPE_PROCESS |
新しいスレッドは非結合 (LWP に固定的に結合されない) |
detachstate |
PTHREAD_CREATE_JOINABLE |
スレッドの終了後に終了状態とスレッドが保存される |
stackaddr |
NULL |
新しいスレッドはシステムによって割り当てられたスタックアドレスをもつ |
stacksize |
0 |
新しいスレッドはシステムによって定義されたスタックの大きさをもつ |
priority |
0 |
新しいスレッドは優先順位 0 をもつ |
inheritsched |
PTHREAD_EXPLICIT_SCHED |
新しいスレッドは親スレッドのスケジューリング優先順位を継承しない |
schedpolicy |
SCHED_OTHER |
新しいスレッドは、同期オブジェクトの競合が発生した場合に、Solaris が定義した固定優先順位を使用する。 スレッドは、横取りされたり、またはブロックされるか CPU を譲ったときに終了する。 |
正常終了時は 0 です。それ以外の戻り値は、エラーが発生したことを示します。以下の条件が検出されると、この関数は失敗し、対応する値を返します。
ENOMEM
メモリーが不足し、スレッド属性オブジェクトを初期化できないときに返されます。