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 aviator demo uz 1win aviator demo uz
1win oynalgan sayt uz 1win oynalgan sayt uz
1win uz ro‘yxatdan o‘tish 1win uz ro‘yxatdan o‘tish
1win shikoyatlar uz https://www.1win5513.ru
мелбет вход зеркало http://www.melbet5001.ru
мелбет кж http://melbet5001.ru
1win shikoyatlar uz http://1win5514.ru/
melbet промокод melbet промокод
1win ro‘yxatdan qanday o‘tish 1win ro‘yxatdan qanday o‘tish
скачать мелбет зеркало http://melbet5001.ru/
1win savollar va javoblar https://1win5514.ru
ваучер 1вин http://www.1win12045.ru
1win официальный сайт мобильная http://1win12045.ru
1win казино скачать https://www.1win12045.ru
мелбет kg http://www.mostbet2029.help
скачать мосбет https://mostbet2029.help/
most bet http://mostbet2029.help
бк мостбет скачать бк мостбет скачать
мостбет. вход. http://www.mostbet2029.help
вход мостбет https://mostbet2030.help/
мостбет сайт http://mostbet2030.help/
mostbet com скачать mostbet com скачать
ставки на спорт бишкек онлайн https://mostbet2032.help/
мостбет скачать на компьютер http://www.mostbet2031.help
mostbet mobile http://www.mostbet2032.help
войти мостбет mostbet2032.help
ставки на спорт бишкек ставки на спорт бишкек
1win app download http://www.1win3001.mobi
bonus code 1win 2024 bonus code 1win 2024
bonus code 1win 2024 [url=1win3001.mobi]bonus code 1win 2024[/url]
выигрышные live ставки на мостбет выигрышные live ставки на мостбет
mostbet aplikace https://mostbet2033.help
играть онлайн в Авиатор https://aviator-plus.ru .
mostbet сайт регистрация https://www.mostbet2033.help
скачать бесплатно мостбет https://mostbet2033.help/
retirar dinero de 1win https://www.1win3002.mobi
1win partners apk 1win partners apk
1win partner program http://1win3002.mobi/
1win o‘zbek tilida sayt https://MAQOLALAR.UZ/
1win descarga http://www.1win3001.mobi
reliablepurchasecenter – Streamlined platform for safe and convenient online purchases.
digitalgrowthportal – Makes understanding and applying growth concepts easy and effective.
1вин слоты 1вин слоты
collaborationhub – Guidance for cultivating alliances that are effective and transparent.
CreativeLearningOutlet – Interactive and engaging, makes concept exploration enjoyable.
ecomhub – User-friendly and clear, ordering products online is simple.
businessallies – Clear explanations, practical advice for growing collaborations effectively.
1win savollar va javoblar 1win savollar va javoblar
OutcomeSignal – Offers focused advice that directly contributes to positive results.
growth compass – Insightful tips, using focused direction makes achieving objectives smoother and more predictable.