名称
pthread_default_stacksize_np() ― デフォルトのスタックサイズの変更
構文
#include <pthread.h>
int pthread_default_stacksize_np(
size_t new_size,
size_t *old_size
);
パラメータ
| new_size | | 新しいデフォルトスタックサイズ。 |
| old_size | | 以前のデフォルトスタックサイズを格納する領域を指すポインタ。 |
説明
pthread_default_stacksize_np() 関数により、アプリケーションは、 stacksize 属性のデフォルト値を変更することができます。 この関数は、スレッドを 1 つも作成していないときに呼び出さなければなりません。
新しいデフォルトスタックサイズは、 new_size パラメータに渡します。 NULL でなければ、前回のデフォルトスタックサイズが、 old_size に返されます。 new_size を 0 とすると、この関数を使用して、現在のデフォルトスタックサイズを照会することができます (いつでも使用可能)。
HP-UX では、デフォルトスタックサイズのスレッドは、終了後キャッシュに入れられます。
そして、次にデフォルトスタックサイズのスレッドを作成するときに、キャッシュに入れられたスレッド (およびそのスタック) が再使用されます。
これにより、 pthread_create() の性能が大きく改良される可能性があります。
しかし、デフォルトスタックサイズがアプリケーションにとって適切でないと、このような性能向上の利点はありません。 pthread_default_stacksize_np() 関数を使用することで、スレッドライブラリは、アプリケーションの要求に調和するように、デフォルトスタックサイズを変更します。
これにより、アプリケーションは、キャッシュされたスレッド性能の恩恵に浴することができます。
戻り値
正常終了すると pthread_default_stacksize_np() は 0 を返します。
それ以外の場合、エラーの内容を表すエラー番号を返します (errno 変数は使用しません)。
エラー
以下の条件の場合、 pthread_default_stacksize_np() 関数は、該当するエラー番号を返します。
| [EINVAL] | | new_size で指定された値が PTHREAD_STACK_MIN 未満の場合。 |
| [EPERM] | | 呼び出したプロセスがすでにスレッドを作成している場合 (関数は、スレッドを何も作成しない時点で呼び出さなければなりません)。 |
著者
pthread_default_stacksize_np() は、HP が開発しました。
参照
pthread_attr_getstacksize(3T), pthread_attr_setstacksize(3T)
標準準拠
pthread_default_stacksize_np(): None.