mirror of
https://github.com/ARMSX2/ARMSX3.git
synced 2026-08-24 16:58:52 -07:00
This used to crash so it was removed. However I think this is a cruicial feature. This is the only way to observe the stack-frames, registers and disasm around the PC in a user friendly way. The reason this caused crashes was that we got a reference to a std::vector and iterated over it in one thread while another thread could modify it (and thereby invalidating the iterators). The way I "fixed" it is to just copy the `std::vector<std::shared_ptr<...>>` and iterate over the copy. This obviously has some overhead (locking the shared_ptr counters and incrementing them). It also allows entities other than the Thread manager to keep the Thread objects frome being deleted but that should not be a problem.