Просмотр исходного кода

core: added Kernel::Reschedule() call to check for thread changes, shortened delay time to 100 instructions

bunnei 12 лет назад
Родитель
Сommit
51f636b3d4
1 измененных файлов с 6 добавлено и 1 удалено
  1. 6 1
      src/core/core.cpp

+ 6 - 1
src/core/core.cpp

@@ -12,6 +12,8 @@
 #include "core/arm/disassembler/arm_disasm.h"
 #include "core/arm/disassembler/arm_disasm.h"
 #include "core/arm/interpreter/arm_interpreter.h"
 #include "core/arm/interpreter/arm_interpreter.h"
 
 
+#include "core/hle/kernel/thread.h"
+
 namespace Core {
 namespace Core {
 
 
 ARM_Disasm*     g_disasm    = NULL; ///< ARM disassembler
 ARM_Disasm*     g_disasm    = NULL; ///< ARM disassembler
@@ -21,14 +23,17 @@ ARM_Interface*  g_sys_core  = NULL; ///< ARM11 system (OS) core
 /// Run the core CPU loop
 /// Run the core CPU loop
 void RunLoop() {
 void RunLoop() {
     for (;;){
     for (;;){
-        g_app_core->Run(10000);
+        g_app_core->Run(100);
         HW::Update();
         HW::Update();
+        Kernel::Reschedule();
     }
     }
 }
 }
 
 
 /// Step the CPU one instruction
 /// Step the CPU one instruction
 void SingleStep() {
 void SingleStep() {
     g_app_core->Step();
     g_app_core->Step();
+    HW::Update();
+    Kernel::Reschedule();
 }
 }
 
 
 /// Halt the core
 /// Halt the core