pthread_key_delete(3THR) は、既存のスレッド固有データキーを削除します。キーに関連付けられているどのメモリーも解放できます。これはキーが無効で、参照されるとエラーが戻されるためです。Solaris スレッドには、これに相当する関数はありません。
プロトタイプ: int pthread_key_delete(pthread_key_t key); #include <pthread.h> pthread_key_t key; int ret; /* 前に作成されたキー */ ret = pthread_key_delete(key); |
キーが削除された後、pthread_setspecific() または pthread_getspecific() 呼び出しでそのキーが参照されると、EINVAL エラーが戻されます。
削除関数を呼び出す前にスレッド固有のリソースを解放するのは、プログラマの責任です。この関数はデストラクタ関数をいっさい呼び出しません。
正常終了時は 0 です。それ以外の戻り値は、エラーが発生したことを示します。以下の条件が検出されると pthread_key_create() は失敗し、対応する値を返します。