mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-04-12 09:09:47 +12:00
[Kernel] Acquiring threads
This commit is contained in:
parent
908e1fc4fd
commit
9532e694b3
1 changed files with 9 additions and 6 deletions
|
@ -205,6 +205,14 @@ void Kernel::sleepThreadOnArbiter(u32 waitingAddress) {
|
||||||
// Acquires an object that is **ready to be acquired** without waiting on it
|
// Acquires an object that is **ready to be acquired** without waiting on it
|
||||||
void Kernel::acquireSyncObject(KernelObject* object, const Thread& thread) {
|
void Kernel::acquireSyncObject(KernelObject* object, const Thread& thread) {
|
||||||
switch (object->type) {
|
switch (object->type) {
|
||||||
|
case KernelObjectType::Event: {
|
||||||
|
Event* e = object->getData<Event>();
|
||||||
|
if (e->resetType == ResetType::OneShot) { // One-shot events automatically get cleared after waking up a thread
|
||||||
|
e->fired = false;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case KernelObjectType::Mutex: {
|
case KernelObjectType::Mutex: {
|
||||||
Mutex* moo = object->getData<Mutex>();
|
Mutex* moo = object->getData<Mutex>();
|
||||||
moo->locked = true; // Set locked to true, whether it's false or not because who cares
|
moo->locked = true; // Set locked to true, whether it's false or not because who cares
|
||||||
|
@ -215,13 +223,8 @@ void Kernel::acquireSyncObject(KernelObject* object, const Thread& thread) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case KernelObjectType::Event: {
|
case KernelObjectType::Thread:
|
||||||
Event* e = object->getData<Event>();
|
|
||||||
if (e->resetType == ResetType::OneShot) { // One-shot events automatically get cleared after waking up a thread
|
|
||||||
e->fired = false;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
default: Helpers::panic("Acquiring unimplemented sync object %s", object->getTypeName());
|
default: Helpers::panic("Acquiring unimplemented sync object %s", object->getTypeName());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue