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 провайдерҳои слот https://1win65382.help
1win лигаи қаҳрамонҳо шартгузорӣ 1win лигаи қаҳрамонҳо шартгузорӣ
Now adjusting my mental model of how the topic fits into the broader landscape, and a look at frostshoregoods extended that adjustment, content that affects my structural understanding rather than just my factual knowledge is content with deeper impact and this site is providing those structural updates at a meaningful rate consistently across topics.
aviator 1вин http://www.1win68190.help
Профессиональный вывод из запоя на дому в Луганске ЛНР организован по отлаженной схеме, которая включает несколько этапов, позволяющих обеспечить максимально безопасное и эффективное лечение.
Подробнее – сколько стоит капельница на дому от запоя луганск
1win ссылка на apk https://www.1win63851.help
насби melbet дар android насби melbet дар android
1win aviator apk https://1win68190.help/
1вин коэффициентҳо 1вин коэффициентҳо
1вин промокод 1вин промокод
melbet actualizare apk melbet actualizare apk
pin-up convertir bono a saldo https://pinup2004.help
melbet mines demo http://melbet95431.help/
melbet усулҳои пардохт http://www.melbet74319.help