pthread_mutex_setprioceiling(3T) は、mutex の優先順位上限を設定します。
#include <pthread.h> int pthread_mutex_setprioceiling(pthread_mutexatt_t *mutex, int prioceiling, int *old_ceiling); |
pthread_mutex_setprioceiling() は mutex の優先順位上限、つまり prioceiling を変更します。pthread_mutex_setprioceiling() は、mutex のロックが解除されている場合 mutex をロックするか、または mutex を正常にロックできるようになるまでブロックして、mutex の優先順位上限を変更し、mutex を開放します。mutex をロックするプロセスでは、優先順位保護プロトコルを守る必要はありません。
mutex 属性オブジェクト、つまり mutex に優先順位上限が含まれるのは、シンボル _POSIX_THREAD_PRIO_PROTECT が定義されている場合だけです。
pthread_mutex_setprioceiling() が正常に終了すると、優先順位上限の以前の値が old_ceiling で返されます。pthread_mutex_setprioceiling() が失敗すると、mutex の優先順位上限は元のままになります。
pthread_mutex_setprioceiling() は、正常終了すると 0 を返します。それ以外の戻り値は、エラーが発生したことを示しています。
次の条件が検出されると、pthread_mutexatt_setprioceiling() は失敗し、それに対応する値を返します。
次のいずれかの条件が検出されると、pthread_mutex_setprioceiling() は失敗し、対応する値を返します。