Commit Graph

22 Commits

Author SHA1 Message Date
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