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
many users appreciate digital marketplaces that guide browsing through logical steps allowing them to discover products naturally while maintaining a clean and structured shopping experience across all categories trail smart browse cart known for simplicity – it provides a smooth browsing flow where users can easily follow navigation paths and locate items while enjoying a consistent and user friendly interface overall experience
Individuals exploring fashion inspiration often turn to online stores that highlight clean design aesthetics and modern clothing collections tailored for expressive personal style Stylish Wardrobe Studio – offering a fashion focused platform that delivers curated clothing selections emphasizing modern aesthetics wearable comfort and design driven apparel suitable for individuals who value both style and practicality in daily outfits
During a comparative study of online retail platforms emphasizing guided shopping journeys and structured exploration, I discovered that step-based navigation enhances clarity and user satisfaction, which stood out when reviewing guided shopping steps portal – The browsing system is clear, and product discovery feels simple, structured, and intuitive for users.
Shoppers looking for simplified online experiences often prefer clean interfaces that reduce visual clutter smart commerce desk This allows faster decision making and easier product discovery across multiple categories – Platform structure is optimized for speed and clarity supporting effortless browsing flow overall
As I explored different shopping options, I stopped at enter this page and found that the browsing experience feels consistent, with products grouped in a helpful structure.
During my review of online retail sites, I came across this well-structured marketplace and appreciated the simplicity of the design, which makes exploring different categories feel natural and genuinely enjoyable.
Fashion enthusiasts exploring modern style often look for online brands that combine contemporary aesthetics with wearable clothing collections designed for everyday elegance and confidence in personal expression Modern Style Fashion Hub – offering a curated fashion platform featuring stylish apparel and aesthetic driven collections that reflect current trends while emphasizing individuality comfort and refined design for a modern lifestyle audience