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
After comparing several personal growth websites, I found life journey start – The platform felt inspiring today, and the layout remained clean and enjoyable, making browsing simple across different devices without clutter or confusing elements online.
вызов врача нарколога на дом москва недорого вызов врача нарколога на дом москва недорого
People exploring online retail platforms often appreciate services that summarize global fashion trends and highlight popular products in a structured format for better decision making Latest trend aggregator – An aggregator that compiles the latest global fashion and product trends into one accessible platform allowing users to quickly identify emerging styles and compare international market offerings
Процедура капельницы от похмелья с контролем врача в Самаре начинается с первичной консультации, на которой врач осматривает пациента, измеряет его основные показатели (давление, пульс, температуру) и оценивает общее состояние. На основе этих данных выбирается оптимальный состав капельницы, которая может включать в себя различные компоненты, такие как солевые растворы, витамины, антиоксиданты и медикаменты для снятия симптомов похмелья.
Исследовать вопрос подробнее – капельница от похмелья анонимно самара
наркологический стационар в санкт петербурге наркологический стационар в санкт петербурге
наркологическая помощь стационар наркологическая помощь стационар
During a casual browsing session through online deal websites and product recommendation platforms offering practical and interesting items, I found Best Picks Corner Network embedded within the article section – It is now my go to spot since I consistently find something worth buying, and every visit feels like discovering useful products I did not know I needed
During an online session searching for lifestyle and personal development websites, I discovered daily living space – The variety of content felt fresh and useful, making the browsing experience enjoyable and easy to navigate through different categories of information.
Thanks for sharing your info. I truly appreciate your efforts and I will be waiting for your further post thanks once again.