C: ¿Cómo declaras un mutex recursivo con hilos POSIX?
Estoy un poco confundido sobre cómo declarar un mutex recursivo usando pthread. Lo que intento hacer es hacer que solo un hilo a la vez pueda ejecutar un fragmento de código (incluidas las funciones), pero después del escepticismo descubrí que el uso de mutexes no funcionaría y que en su lugar debería usar mutexes recursivos. Aquí está mi código:
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
Así que lo que intento hacer es simplemente leer / eliminar de la cola en serie.
El caso es que no hay ningún ejemplo sobre cómo declarar mutex recursivos. O tal vez haya algunos, pero no me compilan.