mirror of
https://github.com/Atmosphere-NX/Atmosphere-libs.git
synced 2025-06-21 11:02:45 +02:00
pm: Support for 6.0.0
This commit is contained in:
parent
5cecc78d51
commit
ccab6aa737
@ -66,15 +66,15 @@ class HosCondVar {
|
||||
public:
|
||||
HosCondVar() {
|
||||
mutexInit(&m);
|
||||
condvarInit(&cv, &m);
|
||||
condvarInit(&cv);
|
||||
}
|
||||
|
||||
Result WaitTimeout(u64 timeout) {
|
||||
return condvarWaitTimeout(&cv, timeout);
|
||||
return condvarWaitTimeout(&cv, &m, timeout);
|
||||
}
|
||||
|
||||
Result Wait() {
|
||||
return condvarWait(&cv);
|
||||
return condvarWait(&cv, &m);
|
||||
}
|
||||
|
||||
Result Wake(int num) {
|
||||
@ -92,45 +92,25 @@ class HosCondVar {
|
||||
|
||||
class HosSemaphore {
|
||||
private:
|
||||
CondVar cv;
|
||||
Mutex m;
|
||||
u64 count;
|
||||
Semaphore s;
|
||||
public:
|
||||
HosSemaphore() {
|
||||
count = 0;
|
||||
mutexInit(&m);
|
||||
condvarInit(&cv, &m);
|
||||
semaphoreInit(&s, 0);
|
||||
}
|
||||
|
||||
HosSemaphore(u64 c) : count(c) {
|
||||
mutexInit(&m);
|
||||
condvarInit(&cv, &m);
|
||||
HosSemaphore(u64 c) {
|
||||
semaphoreInit(&s, c);
|
||||
}
|
||||
|
||||
void Signal() {
|
||||
mutexLock(&this->m);
|
||||
count++;
|
||||
condvarWakeOne(&cv);
|
||||
mutexUnlock(&this->m);
|
||||
semaphoreSignal(&s);
|
||||
}
|
||||
|
||||
void Wait() {
|
||||
mutexLock(&this->m);
|
||||
while (!count) {
|
||||
condvarWait(&cv);
|
||||
}
|
||||
count--;
|
||||
mutexUnlock(&this->m);
|
||||
semaphoreWait(&s);
|
||||
}
|
||||
|
||||
bool TryWait() {
|
||||
mutexLock(&this->m);
|
||||
bool success = false;
|
||||
if (count) {
|
||||
count--;
|
||||
success = true;
|
||||
}
|
||||
mutexUnlock(&this->m);
|
||||
return success;
|
||||
return semaphoreTryWait(&s);
|
||||
}
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user