Boas razões para destruir mutexes com threads em espera

5

Gostaria de ver alguns exemplos válidos de necessidade de permitir que um segmento insira um mutex bloqueado e não-reentrante e, em seguida, destrua o mutex (que supostamente encerra o thread).

Não consigo pensar em nenhum bom motivo para fazer isso. Não me lembro precisamente do que estávamos discutindo hoje, mas meu colega insiste que tais técnicas são necessárias para problemas de "ponto de não retorno" (mais uma vez, me perdoe, mas esqueci o exemplo que ele me deu). / p>     

por defube 24.07.2012 / 04:09
fonte

2 respostas

5

Suponho que você poderia argumentar que um mutex que protege um recurso deve ser destruído e todos os threads em espera devem ser mortos se algo acontecer ao recurso (por exemplo, threads aguardando para gravar em um dispositivo que dispara -linha). Ou, possivelmente, em um ambiente de tempo real em que qualquer tarefa que não tenha sido concluída durante o seu quantum precisa ser forçada a sair. De certa forma, no entanto, não vejo isso como uma solução de propósito geral.

    
por 24.07.2012 / 16:26
fonte
0

Eu acho que você está usando o seu mutex como um semaphore para sinalizar que todos os threads precisam ser encerrados. Isso pode ser útil se qualquer um (ou subconjunto) dos encadeamentos for capaz de detectar condições que exigem que todos os outros encadeamentos parem. Isso também exigiria que todos os encadeamentos acessem rotineiramente este mutex & um encadeamento pai espera que todos terminem antes de finalizar a si mesmo ou reiniciar os encadeamentos.

    
por 24.07.2012 / 16:18
fonte