diff options
Diffstat (limited to 'winsup/cygwin/thread.cc')
-rw-r--r-- | winsup/cygwin/thread.cc | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/winsup/cygwin/thread.cc b/winsup/cygwin/thread.cc index 0256ad717..0e0d30127 100644 --- a/winsup/cygwin/thread.cc +++ b/winsup/cygwin/thread.cc @@ -3443,9 +3443,19 @@ semaphore::_getvalue (int *sval) status = NtQuerySemaphore (win32_obj_id, SemaphoreBasicInformation, &sbi, sizeof sbi, NULL); + int res; if (NT_SUCCESS (status)) - return sbi.CurrentCount; - return startvalue; + { + *sval = sbi.CurrentCount; + res = 0; + } + else + { + *sval = startvalue; + __seterrno_from_nt_status (status); + res = -1; + } + return res; } int |