pthread を使用して再帰的ミューテックスを宣言する方法について、少し混乱しています。私がやろうとしているのは、一度に 1 つのスレッドだけがコード (関数を含む) を実行できるようにすることですが、懐疑的な見方をした後、ミューテックスの使用は機能せず、代わりに再帰ミューテックスを使用する必要があることがわかりました。これが私のコードです:
pthread_mutex_lock(&mutex); // LOCK
item = queue_peek(queue); // get last item in queue
item_buff=item; // save item to a buffer
queue_removelast(queue); // remove last item from queue
pthread_mutex_unlock(&mutex); // UNLOCK
だから私がやろうとしているのは、キューから順番に読み取り/削除することです。
問題は、再帰的ミューテックスを宣言する方法に関する例がそこにないということです。または、いくつかあるかもしれませんが、それらは私のためにコンパイルされません。