Commit Graph

23 Commits

Author SHA1 Message Date
Unknown W. Brackets
f44852bb18 Global: Cleanup virtual/override specifiers.
Also missing virtual destructors, hidden non-overrides, etc.
2022-12-10 21:13:36 -08:00
Henrik Rydgård
efc3f4f5e4 Split CORE_ERROR into CORE_BOOT_ERROR and CORE_RUNTIME_ERROR 2020-07-12 15:25:20 +02:00
Henrik Rydgard
26a2d42731 Big mutex overhaul - remove our custom ones, make them non-recursive where possible 2017-02-28 11:40:29 +01:00
Unknown W. Brackets
e0f85a9c6b Native merge part 1: skip native/ in includes. 2015-09-06 12:19:33 -07:00
Henrik Rydgard
828c740fd5 Correct a few comments, thanks unknown. 2015-07-24 23:27:23 +02:00
Henrik Rydgard
a154dc4b1b Reduce some code duplication 2015-01-11 01:10:47 +01:00
Henrik Rydgard
bc3fb79fa2 If multithreading isn't enabled, don't bother synchronizing the ThreadEventQueue. 2015-01-11 00:45:57 +01:00
Unknown W. Brackets
b1b2c91eb3 Fix issues on win32 with multithreading.
We weren't properly rechecking based on spurious wakeups (which
technically can happen on x64 too.)
2014-07-06 14:02:00 -07:00
Unknown W. Brackets
e08fbfd0af Fix hang on stop before run w/ multithreading.
And clarify logic.
2014-04-28 23:42:17 -07:00
Unknown W. Brackets
effcee475b Fix another race condition.
If EVENT_FINISH is received, but coreState is still CORE_RUNNING and the
thread is still enabled, it would hang.  Makes more sense to wait for
events before processing them anyhow...
2014-04-28 22:12:33 -07:00
Sacha
f29d9c0bf9 Blackberry: fix freezing due to overflow of nanoseconds in timer. 2013-11-11 04:53:08 +10:00
Unknown W. Brackets
113146302b Don't schedule a finish event when not running.
Otherwise it'll get it when it does run, and stop early.
2013-11-09 23:08:44 -08:00
Unknown W. Brackets
afafa5fcd6 Make sure the gpu thread has a chance to run.
If the scheduler puts it on the same core, it may not even do anything
before we check if the framebuffer is dirty, so SyncThread will quit since
it's not even running.

Instead, let's wait until it's at least done something.
2013-11-09 23:08:28 -08:00
Unknown W. Brackets
879060f008 Use a CORE_POWERUP state when starting.
Otherwise, we could startup in CORE_POWERDOWN in a second game, which is
confusing.
2013-11-09 23:07:52 -08:00
Unknown W. Brackets
401400bb52 Fix uninitialized variable, oops. 2013-10-13 15:14:30 -07:00
Unknown W. Brackets
5687fa481b Don't SyncThread while not running, wake more proactively.
Maybe the wait_for() is no longer needed there...
2013-10-13 12:13:11 -07:00
Unknown W. Brackets
479a9801d4 Shutdown issues: the legend continues.
If the gpu was slow (softgpu for example), it might still be accessing
memory.  Need to let it wake, and ignoring coreState too.
2013-10-13 09:35:02 -07:00
Unknown W. Brackets
c83fa8a3bc Fix MT locking, was not really right. 2013-09-28 20:56:38 -07:00
Unknown W. Brackets
086294b495 Listen for shutdown in thread loops.
This way we don't need to use wait_for(), much better.
Also because there are slightly more correct cond vars on win32.
2013-09-28 00:45:54 -07:00
Unknown W. Brackets
3570ea8dee Fix condition variable misuse. 2013-08-12 02:41:37 -07:00
Henrik Rydgard
8e22554fb0 GCC buildfix (processes more of templates earlier than MSVC) 2013-08-12 00:51:13 +02:00
Unknown W. Brackets
e6b42768fe Add a class to manage IO on a separate thread.
Also separate the logic for exiting the loop based on coreState.  IO and
audio won't necessarily be tied to the frame.
2013-08-11 11:46:55 -07:00
Unknown W. Brackets
1b838c4403 Move ThreadEventQueue to its own file. 2013-08-10 09:08:31 -07:00