void System::runtosave() { if(CPU::Threaded == true) { scheduler.sync.i = Scheduler::SynchronizeMode::CPU; runthreadtosave(); } if(SMP::Threaded == true) { scheduler.thread = smp.thread; runthreadtosave(); } if(PPU::Threaded == true) { scheduler.thread = ppu.thread; runthreadtosave(); } if(DSP::Threaded == true) { scheduler.thread = dsp.thread; runthreadtosave(); } for(unsigned i = 0; i < cpu.coprocessors.size(); i++) { Processor &chip = *cpu.coprocessors[i]; scheduler.thread = chip.thread; runthreadtosave(); } }
void System::runtosave() { scheduler.sync = Scheduler::SynchronizeMode::CPU; runthreadtosave(); scheduler.sync = Scheduler::SynchronizeMode::All; scheduler.active_thread = ppu.thread; runthreadtosave(); scheduler.sync = Scheduler::SynchronizeMode::All; scheduler.active_thread = apu.thread; runthreadtosave(); scheduler.sync = Scheduler::SynchronizeMode::None; }