Я немного смущен тем, как объявить рекурсивный мьютекс, используя pthread. То, что я пытаюсь сделать, это иметь только один поток за один раз, чтобы иметь возможность запускать часть кода (включая функции), но после скептицизма я понял, что использование мьютексов не будет работать, и вместо этого я должен использовать рекурсивные мьютексы. Вот мой код:
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
Итак, что я пытаюсь сделать, просто читайте/удаляйте из очереди поочередно.
Дело в том, что нет никакого примера, как объявить рекурсивные мьютексы. Или, может быть, несколько, но они не компилируются для меня.