[Kernel] ReleaseSemaphore for Posix to match Windows semantics

This commit is contained in:
Herman S.
2025-10-12 20:30:29 +09:00
parent 28e48410c5
commit 32b8c341ee
4 changed files with 32 additions and 13 deletions

View File

@@ -40,10 +40,14 @@ bool XSemaphore::InitializeNative(void* native_ptr, X_DISPATCH_HEADER* header) {
return !!semaphore_;
}
int32_t XSemaphore::ReleaseSemaphore(int32_t release_count) {
bool XSemaphore::ReleaseSemaphore(int32_t release_count,
int32_t* out_previous_count) {
int32_t previous_count = 0;
semaphore_->Release(release_count, &previous_count);
return previous_count;
bool success = semaphore_->Release(release_count, &previous_count);
if (out_previous_count) {
*out_previous_count = previous_count;
}
return success;
}
bool XSemaphore::Save(ByteStream* stream) {