Trabalho 3 – EPOS
System Object Destruction
No exercício três deviamos implementar o controle de destrução de objetos, o qual não deve corromper o sistema e também deve estar de acordo com a semântica da linguagem de programação.
A implementação adotada funciona da seguinte maneira: na class Thread foi adicionado um campo _container, nele é guardada a fila em que a Thread se encontra no momento. Os métodos desta classe foram alterados para que a consistência do campo _container seja mantida. No método join, por exemplo, o campo _container é atualizado com o endereço da fila _waiting_for_me do objeto em que se da join.
Quando uma thread entra para o estado RUNNING o seu campo container não é atualizado, já que caso o mesmo seja deletado (ou auto-deletado), ele tentará se remover de uma fila em que não está, não causando mais problemas.
Quando uma thread que possui elementos na sua fila _waiting_for_me é deletada, ela não acorda aquelas que a estão esperando, entrando em uma situação de deadlock. Nosso sistema, por conseguir detectar essa situação facilmente, gera um aviso. Porém, caso a Thread que tente se dar join já tiver sido destruída e removida da memória, a thread em execução trava, como nosso sistema não consegue detectar esse erro ele não é informado.
Quando um objeto que extende a classe Synchronizer é deletado, seu destrutor chama wakeup_all, fazendo com que todos as threads que estiverem travadas nele continuem a execução.
Arquivos Modificados:
Thread.h
Thread.cc
Sycronizer.h
1win Buxoro depozit http://1win85063.help/
aviator प्रेडिक्शन ट्रिक https://aviator50639.help
Вывод из запоя на дому в Казани позволяет получить медицинскую помощь без очередей, учета и лишнего стресса. Врач приезжает по месту проживания, сохраняет конфиденциальность, спокойно говорит с пациентом и близкими, проводит первичную диагностику и начинает лечение только при наличии согласия. Если человек отказывается лечиться, доктор может провести мотивационную беседу, но принудительное лечение без законных оснований не проводится.
Получить дополнительную информацию – http://www.domen.ru
1win шартгузорӣ футбол лайв https://www.1win38596.help
как вывести на карту mostbet как вывести на карту mostbet
1win spin bonus 1win spin bonus
мостбет мостбет
1win-dən necə pul çıxarmaq olar http://1win25674.help/
1 win Uganda http://www.1win08952.help
1win слотҳо jackpot http://www.1win38596.help
1win lucky jet 2026 1win lucky jet 2026
mostbet ошибка платежа mostbet ошибка платежа