Unknown W. Brackets
933c8abb55
Check kernel object types when looking up ids.
...
Some games misuse it, need to return an error.
2013-06-18 23:54:29 -07:00
Unknown W. Brackets
aada48cf15
Use a PSPPointer in lwmutexes.
2013-06-02 15:17:24 -07:00
Unknown W. Brackets
77b0688d92
Recalculate numWaitThreads all the time.
...
Before, it could go negative by having a thread woken a second time
(e.g. because of a delete) before it actually scheduled and woke up.
2013-05-27 22:44:10 -07:00
Unknown W. Brackets
3fbc3bd14a
Don't allow attr 0x400 for mutexes, report less.
...
Seems like 0 is ignored afaict, which makes sense from other funcs.
Not sure if anyone calls it with a value.
2013-05-18 15:31:31 -07:00
Unknown W. Brackets
9ce8c07530
Reschedule the timeout event on callback end.
...
Darn, missed that 3 times before I caught it.
2013-04-14 21:34:33 -07:00
Unknown W. Brackets
0918ec8598
Return negative for UnscheduleEvent().
...
It usually won't be, but it could be negative.
Also some other minor warnings.
2013-04-05 20:44:17 -07:00
Unknown W. Brackets
832edb0a8f
Fix some x64 type conversion warnings.
2013-04-05 20:29:20 -07:00
Unknown W. Brackets
1cfdaa9349
Read structs directly from PSP ram on LE.
...
On BE, which doesn't even really work atm, this can be an auto class.
2013-03-30 20:12:22 -07:00
Unknown W. Brackets
52a8997006
These are actually okay, happen on the second cb.
2013-03-30 16:12:40 -07:00
Unknown W. Brackets
2ecc3157de
Fix waits within waits for lwmutexes.
...
Also, it turns out sceKernelLockMutexCB() doesn't call callbacks on lock.
2013-03-30 16:12:39 -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
e4223dbcb0
Simplify adding report messages, add a bunch more.
2013-03-26 00:54:00 -07:00
Unknown W. Brackets
e133d33167
Don't re-wake a thread already woken by delete.
...
Arg, I thought I'd changed this already.
2013-03-24 22:54:09 -07:00
Unknown W. Brackets
da3af79f3b
Turn down logging for LwMutexes.
...
No one seems to have run into issues with these for a while, and they are
quite noisy, since games use them as lightweight locks.
2013-03-10 22:57:27 -07:00
Unknown W. Brackets
37dffb6210
Implement sceKernelReferLwMutexStatus() and ByID().
2013-02-24 22:50:48 -08:00
Unknown W. Brackets
ad3152cb94
Fix sceKernelReferMutexStatus().
2013-02-24 20:28:39 -08:00
Unknown W. Brackets
2a6457b6ab
Cut down on h files including PointerWrap.
...
This makes changes to it a bit faster to build.
2013-02-04 08:26:59 -08:00
Unknown W. Brackets
1cb7a88137
Don't use a dynamic string for wait debugging.
...
Happens in release, and shows up on the profiler.
Not huge, but should save ~0.5% of cpu time.
2013-01-26 11:29:19 -08:00
Henrik Rydgard
8d845cc588
quick implementation of sceKernelReferMutexStatus
2013-01-20 23:11:48 +01:00
Unknown W. Brackets
43c8726554
Oops, 0 is a valid timer id.
2013-01-18 01:38:14 -08:00
Unknown W. Brackets
305c41c932
Prevent duplicate waiting threads in sema/mutex.
...
If something did a tight loop of a short wait/timeout, it might end
up getting on the waitingThreads list multiple times.
Eventually this caused a massive performance problem.
2012-12-31 23:23:52 -08:00
Unknown W. Brackets
bcecd881b1
Savestate cleanup + be more careful with vectors.
...
For some reason I debugged it going into std::string so I just made
them all more explicit which fixed everything.
2012-12-28 13:55:31 -08:00
Unknown W. Brackets
3ed2045f6b
Add state saving to tertiary kernel modules.
2012-12-28 13:55:25 -08:00
Unknown W. Brackets
595759ef78
Implement a factory for kernel objects.
...
Couldn't think of a better way to do this, maybe there's some fancy
one I don't know about.
Also finished up a couple left over kernel objects.
Maybe a quarter the way there?
2012-12-28 13:55:22 -08:00
Unknown W. Brackets
991243fffd
Add basic DoState() to tertiary kernel objects.
2012-12-28 13:52:52 -08:00