私はLinuxに取り組んでいます。私のコードでは、RECURSIVE ミューテックスをロックしようとしているいくつかのスレッド (たとえば 2 としましょう) を実行しようとしていますが、ミューテックスにアクセスしてロックできるスレッドは 1 つだけですが、2 番目のスレッドは最初のミューテックスの後でも EBUSY エラーを取得します。スレッドがロックを解除しました。ミューテックスがPRIVETであり、SHAREDではないためだと思います。
次のように、mutex を RECRUSIVE と SHARED の両方に設定しようとしています。
    void
MutexCreate(pthread_mutex_t* _m)
{
    pthread_mutexattr_t attr; 
    pthread_mutexattr_init(&attr);
    pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED);
    pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
    pthread_mutex_init(_m, &attr); 
}
(私は関数エラーをチェックします - そしてそれらはすべて0を返します)
DEFAULT SHARED ミューテックスにしようとしても:
    void
MutexCreate(pthread_mutex_t* _m)
{
    pthread_mutexattr_t attr; 
    pthread_mutexattr_init(&attr);
    pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED);
    pthread_mutex_init(_m, &attr); 
}
それはまだPRIVETのままです。
何か案は?