Skip to content
Snippets Groups Projects
  • Yuri Kunde Schlesner's avatar
    Kernel: Make WaitObjects share ownership of Threads waiting on them · 52f58e64
    Yuri Kunde Schlesner authored
    During normal operation, a thread waiting on an WaitObject and the
    object hold mutual references to each other for the duration of the
    wait.
    
    If a process is forcefully terminated (The CTR kernel has a SVC to do
    this, TerminateProcess, though no equivalent exists for threads.) its
    threads would also be stopped and destroyed, leaving dangling pointers
    in the WaitObjects.
    
    The solution is to simply have the Thread remove itself from WaitObjects
    when it is stopped. The vector of Threads in WaitObject has also been
    changed to hold SharedPtrs, just in case. (Better to have a reference
    cycle than a crash.)
    52f58e64