Thread scheduler rewrite #393
Conversation
|
I added another scheduling mode that should only allows one thread to run at a time, and switch cores on a round robin fashion. It is enabled by default, and should help spoting bugs related to multithreading. This can have some impact on speed and on startup aswell, since translation of new functions will block execution. |
|
This should be pretty much done, althrough a bunch of things are still not tested. A new config entry called Will try to do more broad testing tomorrow, it will be nice if others could test it aswell. If no regressions are found I will merge. Thanks again to TuxSH for helping me to understand stuff and helping finding issues on the impl! |
|
I'll do some testing on this branch, currently the exclusive monitor changes are branched from master (a while back), but given this is finalized I'll rebase my changes and work on the exclusive access updates on top of this. There are a number of things changed in this branch that I'll need to rejig in the rebase. |
The goal is more accurately emulating the thread scheduler used on horizon. This is still incomplete, a few svcs are missing, and some are not fully implemented, so this is WIP.
Big thanks to TuxSH for helping me with it.
If anyone is interested in testing, I mostly want to make sure there are no regressions with this PR (games that worked before not working anymore, or something of the sort).