フロリダ州立大学のpthread標準の実装が、おそらく再帰的なmutexを扱うことができるかどうか疑問に思っています。 残念ながら、FSUの実装に関するドキュメントはかなり貧弱であり、ミューテックスを再帰的に宣言する可能性については言及していません。 (同じコードをコンパイルしようとするとFSU Pthreadを実装した再帰的なmutex
test.c:25: error: `pthread_mutex_attr' undeclared (first use in this function)
test.c:25: error: (Each undeclared identifier is reported only once
test.c:25: error: for each function it appears in.)
test.c:25: error: parse error before "mutex_attr"
test.c:27: error: `mutex_attr' undeclared (first use in this function)
test.c:28: error: `PTHREAD_MUTEX_RECURSIVE' undeclared (first use in this function)
:エラーのリストを
pthread_mutex_attr mutex_attr;
pthread_mutexattr_init (&mutex_attr);
pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_RECURSIVE);
pthread_mutex_init(&mutex, NULL);
をし、FSUのpthreadsのライブラリを使用してコンパイルし、私が得た:次のようにミューテックスを宣言しようと
非FSU)のpthread実装を私のマシン上で実行すると動作します。
わかりやすいように、私は、デフォルトではPOSIXミューテックスが再帰的ではないことを前もって教えています。
FSU実装で再帰ミューテックスを使用する方法がないとか、そうした別の方法(再帰的にミューテックスを宣言する別の方法)がありますか?
タイプは 'pthread_mutex_attr_t'です。_tに注意してください。 –
ベン、あなたが正しいです、私が書いたコードは、コンパイラの出力を取得しようとしただけです。元のコードは正しかった:) –