diff options
author | Vas Crabb <vas@vastheman.com> | 2022-06-16 07:07:15 +1000 |
---|---|---|
committer | Vas Crabb <vas@vastheman.com> | 2022-06-16 07:07:15 +1000 |
commit | 8a36fece6928c1c00723aa3116556520f880e22d (patch) | |
tree | f1e060d1c1a7062b64ffb21da08289649b96f8a1 /src/emu | |
parent | fbc6caa94f8245c415ef8aa82df333c7f7b5a56c (diff) |
emu/schedule.cpp: Fixed regressions with some temporary timers.
Diffstat (limited to 'src/emu')
-rw-r--r-- | src/emu/schedule.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/emu/schedule.cpp b/src/emu/schedule.cpp index 462fd5bb6a0..4605dbb82de 100644 --- a/src/emu/schedule.cpp +++ b/src/emu/schedule.cpp @@ -87,7 +87,9 @@ emu_timer &emu_timer::init( m_param = param; m_temporary = temporary; m_period = attotime::never; - m_start = machine.scheduler().time(); + + device_scheduler &scheduler = machine.scheduler(); + m_start = scheduler.time(); m_expire = m_start + start_delay; m_enabled = !m_expire.is_never(); @@ -96,7 +98,10 @@ emu_timer &emu_timer::init( register_save(); // insert into the list - machine.scheduler().timer_list_insert(*this); + scheduler.timer_list_insert(*this); + if (this == scheduler.first_timer()) + scheduler.abort_timeslice(); + return *this; } @@ -620,7 +625,7 @@ void device_scheduler::postload() { emu_timer &timer = *m_timer_list; - if (timer.m_temporary && !timer.expire().is_never()) + if (timer.m_temporary) { assert(!timer.expire().is_never()); |