eção crítica justa (Linu

Em um aplicativo Linux multiencadeado, uso um mutex para seções críticas. Isso funciona muito bem, exceto na questão da justiça. Pode acontecer que um thread que saia de uma seção crítica e volte a entrar imediatamente não dê nenhuma chance a outro thread. Por exempl

while(true)
{
    critsect.enter();
    ... do calculations ...
    ... maybe call a blocking operation so we sleep ...
    critsect.leave();
}

provável que @ pare qualquer outro thread para entrar na mesma seção crítica. Mutexe não é just

Existe uma solução para criar uma seção crítica justa? Eu estava pensando em adicionar uma fila para que seções críticas sejam executadas na ordem de sua 'chegada'. Como alternativa, pelo menos um contador para talvez fazer um pthread_yield () após o desbloqueio, se outros threads estiverem aguardand

Existe uma prática recomendada para esse tipo de requisit

questionAnswers(5)

yourAnswerToTheQuestion