- Jan 04, 2017
-
-
Subv authored
Not all syscalls should cause reschedules, this commit attempts to remedy that, however, it still does not cover all cases.
-
- Sep 21, 2016
-
-
Yuri Kunde Schlesner authored
-
Emmanuel Gil Peyrot authored
This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
-
- Sep 19, 2016
-
-
Yuri Kunde Schlesner authored
-
- Sep 18, 2016
-
-
Emmanuel Gil Peyrot authored
-
- Jun 17, 2015
-
-
bunnei authored
-
- May 20, 2015
-
-
bunnei authored
-
- May 07, 2015
-
-
Yuri Kunde Schlesner authored
-
- Apr 09, 2015
-
-
bunnei authored
-
- Feb 11, 2015
-
-
archshift authored
Involves making asserts use printf instead of the log functions (log functions are asynchronous and, as such, the log won't be printed in time) As such, the log type argument was removed (printf obviously can't use it, and it's made obsolete by the file and line printing) Also removed some GEKKO cruft.
-
- Feb 10, 2015
-
-
bunnei authored
-
- Feb 02, 2015
-
-
Yuri Kunde Schlesner authored
They're finally unnecessary, and will stop cluttering the application's handle table.
-
Yuri Kunde Schlesner authored
During normal operation, a thread waiting on an WaitObject and the object hold mutual references to each other for the duration of the wait. If a process is forcefully terminated (The CTR kernel has a SVC to do this, TerminateProcess, though no equivalent exists for threads.) its threads would also be stopped and destroyed, leaving dangling pointers in the WaitObjects. The solution is to simply have the Thread remove itself from WaitObjects when it is stopped. The vector of Threads in WaitObject has also been changed to hold SharedPtrs, just in case. (Better to have a reference cycle than a crash.)
-
Yuri Kunde Schlesner authored
This should speed up compile times a bit, as well as enable more liberal use of forward declarations. (Due to SharedPtr not trying to emit the destructor anymore.)
-
Yuri Kunde Schlesner authored
-
- Jan 30, 2015
-
-
Yuri Kunde Schlesner authored
-
Yuri Kunde Schlesner authored
-
- Jan 22, 2015
-
-
bunnei authored
-
bunnei authored
- ReleaseNextThread->WakeupNextThread - ReleaseAllWaitingThreads->WakeupAllWaitingThreads.
-
bunnei authored
-
bunnei authored
-
bunnei authored
-
bunnei authored
-
bunnei authored
- Separate wait checking from waiting the current thread - Resume thread when wait_all=true only if all objects are available at once - Set output to correct wait object index when there are duplicate handles
-
bunnei authored
-
bunnei authored
-
- Jan 21, 2015
-
-
bunnei authored
-
- Jan 09, 2015
-
-
Yuri Kunde Schlesner authored
-
Yuri Kunde Schlesner authored
-
- Jan 04, 2015
-
-
Subv authored
This will happen when the mutex is already owned by another thread. Should fix some issues with games being stuck due to waiting threads not being awoken.
-
- Dec 28, 2014
-
-
Yuri Kunde Schlesner authored
This handle manager more closely mirrors the behaviour of the CTR-OS one. In addition object ref-counts and support for DuplicateHandle have been added. Note that support for DuplicateHandle is still experimental, since parts of the kernel still use Handles internally, which will likely cause troubles if two different handles to the same object are used to e.g. wait on a synchronization primitive.
-
Yuri Kunde Schlesner authored
-
Yuri Kunde Schlesner authored
-
- Dec 21, 2014
-
-
purpasmart96 authored
-
- Dec 07, 2014
- Dec 06, 2014
-
-
Subv authored
Also resume only the next immediate thread waiting for the mutex when it is released, instead of resuming them all.
-
- Nov 26, 2014
-
-
bunnei authored
-
- Nov 24, 2014
-
-
Yuri Kunde Schlesner authored
-
Yuri Kunde Schlesner authored
All service calls in the CTR OS return result codes indicating the success or failure of the call. Previous to this commit, Citra's HLE emulation of services and the kernel universally either ignored errors or returned dummy -1 error codes. This commit makes an initial effort to provide an infrastructure for error reporting and propagation which can be use going forward to make HLE calls accurately return errors as the original system. A few parts of the code have been updated to use the new system where applicable. One part of this effort is the definition of the `ResultCode` type, which provides facilities for constructing and parsing error codes in the structured format used by the CTR. The `ResultVal` type builds on `ResultCode` by providing a container for values returned by function that can report errors. It enforces that correct error checking will be done on function returns by preventing the use of the return value if the function returned an error code. Currently this change is mostly internal since errors are still suppressed on the ARM<->HLE border, as a temporary compatibility hack. As functionality is implemented and tested this hack can be eventually removed.
-