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