493 Commits

Author SHA1 Message Date
Unknown W. Brackets
72921e0a3c If the mipscall id doesn't match, don't create.
Fixes a crash when savestating.
2013-03-31 12:09:59 -07:00
Unknown W. Brackets
2a9c640739 When starting a thread, put old thread at end.
This matters so the right thread is run later when scheduling switches
back.
2013-03-31 09:45:41 -07:00
Unknown W. Brackets
fe60677f75 Make mutexes handle callbacks better + before.
Mutex and semaphores (but NOT lwmutexes) call callbacks before attempting
the lock, but only if it would not generate errors.

Have not yet tested other wait types.
2013-03-30 16:12:38 -07:00
Unknown W. Brackets
eace0e75c1 sceKernelWaitSemaCB() should run callbacks first.
Patapon 2 gets back to the menu with this.
2013-03-30 16:12:38 -07:00
Unknown W. Brackets
d2abdf17be Add a waittype registry to handle callbacks right. 2013-03-30 16:12:37 -07:00
Unknown W. Brackets
e4223dbcb0 Simplify adding report messages, add a bunch more. 2013-03-26 00:54:00 -07:00
Unknown W. Brackets
f89358d6ff Add some reporting in other thread functions. 2013-03-26 00:39:18 -07:00
Unknown W. Brackets
480c5c3e31 Add some reporting for broken callback situations. 2013-03-26 00:36:46 -07:00
Unknown W. Brackets
276037675f Prevent waiting on semas while dispatch disabled.
Does relatively well on tests this way.
2013-03-24 23:30:32 -07:00
Unknown W. Brackets
783df9f0c3 sceKernelResumeDispatchThread() always returns 0. 2013-03-24 20:53:51 -07:00
Unknown W. Brackets
64445e0c8d Resume dispatch on thread start. 2013-03-24 20:52:18 -07:00
Unknown W. Brackets
c9e1b01545 Don't reschedule while interrupts are disabled. 2013-03-24 19:43:56 -07:00
Unknown W. Brackets
b2fd023038 Fix return value of sceKernelSuspendDispatchThread. 2013-03-24 19:30:17 -07:00
Henrik Rydgard
84d292010a Oops, sceKernelCheckThreadStack was already implemented. Let's hope both copies are the same. 2013-03-23 14:41:13 +01:00
Henrik Rydgard
6a4ae5bb51 Implement sceKernelCheckThreadStack 2013-03-23 14:26:54 +01:00
Unknown W. Brackets
2500910d72 Fix dumb typo in sceKernelRotateThreadReadyQueue(). 2013-03-20 14:11:13 -07:00
Unknown W. Brackets
96f2d860e4 Revert thread optimization, appears to have broken things.
Fixes #1033.

This reverts commit ea91632ff5 and
commit 543dfcd4d8.
2013-03-20 14:10:20 -07:00
Unknown W. Brackets
ea91632ff5 Allow the thread ready queue to shrink, simplify. 2013-03-20 08:11:24 -07:00
Unknown W. Brackets
cd8e0e675c Small optimization to sceKernelRotateThreadReadyQueue(). 2013-03-20 00:06:19 -07:00
Unknown W. Brackets
543dfcd4d8 Optimize thread ready queue pop_front(). 2013-03-19 23:51:40 -07:00
Unknown W. Brackets
14e065cbb2 Avoid dynamic_cast() for threads where possible.
It's reasonable to trust currentThread and threadReadyQueue, and these eat
a few percentage points of time.
2013-03-16 11:17:44 -07:00
Unknown W. Brackets
d8dd889bfd Couple more minor warning fixes. 2013-03-15 08:19:02 -07:00
Unknown W. Brackets
6e54ce5551 Fix some minor warnings. 2013-03-15 00:45:47 -07:00
Unknown W. Brackets
acd7e1b6af Handle dispatch suspend/resume slightly better. 2013-03-13 23:49:39 -07:00
Unknown W. Brackets
0b9c248856 Reschedule in sceIoLseek() etc.
Also make it so we can return u64s easily in places...
2013-03-11 02:50:32 -07:00