@ -51,11 +51,11 @@ void EmuThread::run() {
Common : : SetCurrentThreadName ( name . c_str ( ) ) ;
auto & system = Core : : System : : GetInstance ( ) ;
auto & gpu = system . GPU ( ) ;
auto stop_token = stop_source . get_token ( ) ;
system . RegisterHostThread ( ) ;
auto & gpu = system . GPU ( ) ;
// Main process has been loaded. Make the context current to this thread and begin GPU and CPU
// execution.
gpu . Start ( ) ;
@ -65,7 +65,7 @@ void EmuThread::run() {
emit LoadProgress ( VideoCore : : LoadCallbackStage : : Prepare , 0 , 0 ) ;
system . Renderer ( ) . ReadRasterizer ( ) - > LoadDiskResources (
system . CurrentProcess ( ) - > GetTitleID ( ) , stop_ ru n,
system . CurrentProcess ( ) - > GetTitleID ( ) , stop_ toke n,
[ this ] ( VideoCore : : LoadCallbackStage stage , std : : size_t value , std : : size_t total ) {
emit LoadProgress ( stage , value , total ) ;
} ) ;
@ -78,7 +78,7 @@ void EmuThread::run() {
// so that the DebugModeLeft signal can be emitted before the
// next execution step
bool was_active = false ;
while ( ! stop_ run ) {
while ( ! stop_ token. stop_requested ( ) ) {
if ( running ) {
if ( was_active ) {
emit DebugModeLeft ( ) ;
@ -100,7 +100,7 @@ void EmuThread::run() {
}
running_guard = false ;
if ( ! stop_ run ) {
if ( ! stop_ token. stop_requested ( ) ) {
was_active = true ;
emit DebugModeEntered ( ) ;
}
@ -108,7 +108,7 @@ void EmuThread::run() {
UNIMPLEMENTED ( ) ;
} else {
std : : unique_lock lock { running_mutex } ;
running_cv . wait ( lock , [ this ] { return IsRunning ( ) | | exec_step | | stop_run ; } ) ;
running_cv . wait ( lock , stop_token , [ this ] { return IsRunning ( ) | | exec_step ; } ) ;
}
}