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
mostbet plinko https://mostbet07541.help/
crazy time live italia https://crazy-time-italy.it/
mostbet kifizetés ellenőrzés miatt mostbet kifizetés ellenőrzés miatt
Looking through the archives suggests this site has been doing this for a while at this level, and a look at violetcresttrends confirmed the long term consistency, sites that have maintained quality across years rather than just a recent stretch are sites with serious editorial discipline and this one has clearly been at it for a while.
statistiche crazy time sisal https://crazy-time-slot.it/
888 casino crazy time https://crazytime-italia-it.com/
aviator contornar bloqueio http://www.aviator46035.help
мостбет регистрация на сайте https://mostbet07541.help/
В этой статье мы говорим о важности поддержки в процессе выздоровления. Рассматриваются семьи, группы поддержки, специалисты и онлайн-ресурсы, которые могут сыграть решающую роль в избавлении от зависимости.
Не пропусти важное – Наркологическая клиника «Похмельная служба» в Таупсе
Honestly informative, the writer covers the ground without showing off, and a look at urbanfashionhub reflected the same humility, content that respects the reader rather than trying to dazzle them is something I always appreciate and rarely come across in this corner of the internet today across the topics I usually read.
melbet коэффитсиент melbet коэффитсиент
aviator pt-br http://aviator46035.help/
aviator app yeniləmə aviator app yeniləmə
В этой статье мы рассматриваем разрушительное влияние зависимости на жизнь человека. Обсуждаются аспекты, такие как здоровье, отношения и профессиональные достижения. Читатели узнают о необходимости обращения за помощью и о путях к восстановлению.
Узнать больше – Наркологическая клиника «Похмельная служба» в Воронеже
aviator aposta baixa http://aviator46035.help
Decided to set a calendar reminder to revisit, and a stop at urbanchoiceoutlet extended that revisit list, calendar entries for content are a level of commitment I rarely make but when I do they signal a higher regard than a simple bookmark and this site has earned that calendar tier of relationship from me today.
aviator crash online aviator crash online
мостбет кэшбэк казино https://mostbet07541.help
мостбет рулетка мостбет рулетка
mostbet tranzakció előzmények https://mostbet26815.help/