You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mt...@apache.org on 2009/09/07 11:48:52 UTC

svn commit: r812063 - /commons/sandbox/runtime/trunk/src/main/native/os/win32/sema.c

Author: mturk
Date: Mon Sep  7 09:48:52 2009
New Revision: 812063

URL: http://svn.apache.org/viewvc?rev=812063&view=rev
Log:
Return consistent error codes across calls

Modified:
    commons/sandbox/runtime/trunk/src/main/native/os/win32/sema.c

Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/sema.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/sema.c?rev=812063&r1=812062&r2=812063&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/sema.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/sema.c Mon Sep  7 09:48:52 2009
@@ -40,11 +40,14 @@
 static int semaphore_cleanup(void *sema, int type, unsigned int flags)
 {
     if (type == ACR_DT_SEMAPHORE) {
-        if (IS_VALID_HANDLE(sema))
+        if (IS_VALID_HANDLE(sema)) {
             CloseHandle(sema);
-        return ACR_SUCCESS;
+            return ACR_SUCCESS;
+        }
+        else
+            return ACR_EBADF;
     }
-    return ACR_EBADF;
+    return ACR_EFTYPE;
 }
 
 ACR_DECLARE(int) ACR_SemaphoreCreate(JNIEnv *_E, const acr_pchar_t *name,
@@ -136,9 +139,13 @@
     int rc = 0;
     HANDLE s = (HANDLE)ACR_IOH_FDATA(sema);
 
-    if (IS_INVALID_HANDLE(s) || ACR_IOH_FTYPE(sema) != ACR_DT_SEMAPHORE) {
-        return ACR_EINVAL;
+    if (ACR_IOH_FTYPE(sema) != ACR_DT_SEMAPHORE) {
+        return ACR_EFTYPE;
     }
+    if (IS_INVALID_HANDLE(s)) {
+        return ACR_EBADF;
+    }
+
     return ACR_ENOTIMPL;
 }
 
@@ -149,8 +156,11 @@
     HANDLE wh[2];
     HANDLE s = (HANDLE)ACR_IOH_FDATA(sema);
 
-    if (ACR_IOH_FTYPE(sema) != ACR_DT_SEMAPHORE || IS_INVALID_HANDLE(s)) {
-        return ACR_EINVAL;
+    if (ACR_IOH_FTYPE(sema) != ACR_DT_SEMAPHORE) {
+        return ACR_EFTYPE;
+    }
+    if (IS_INVALID_HANDLE(s)) {
+        return ACR_EBADF;
     }
 
     wh[0] = dll_psig_handle;
@@ -192,8 +202,11 @@
     int rc;
     HANDLE s = (HANDLE)ACR_IOH_FDATA(sema);
 
-    if (IS_INVALID_HANDLE(s) || ACR_IOH_FTYPE(sema) != ACR_DT_SEMAPHORE) {
-        return ACR_EINVAL;
+    if (ACR_IOH_FTYPE(sema) != ACR_DT_SEMAPHORE) {
+        return ACR_EFTYPE;
+    }
+    if (IS_INVALID_HANDLE(s)) {
+        return ACR_EBADF;
     }
     rc = WaitForSingleObject(s, 0);
 
@@ -212,8 +225,11 @@
     int rc = 0;
     acr_semaphore_t *s = (acr_semaphore_t *)ACR_IOH_FDATA(sema);
 
-    if (IS_INVALID_HANDLE(s) || ACR_IOH_FTYPE(sema) != ACR_DT_SEMAPHORE) {
-        return ACR_EINVAL;
+    if (ACR_IOH_FTYPE(sema) != ACR_DT_SEMAPHORE) {
+        return ACR_EFTYPE;
+    }
+    if (IS_INVALID_HANDLE(s)) {
+        return ACR_EBADF;
     }
 
     for (;;) {
@@ -236,8 +252,11 @@
     int rc = 0;
     HANDLE s = (HANDLE)ACR_IOH_FDATA(sema);
 
-    if (IS_INVALID_HANDLE(s) || ACR_IOH_FTYPE(sema) != ACR_DT_SEMAPHORE) {
-        return ACR_EINVAL;
+    if (ACR_IOH_FTYPE(sema) != ACR_DT_SEMAPHORE) {
+        return ACR_EFTYPE;
+    }
+    if (IS_INVALID_HANDLE(s)) {
+        return ACR_EBADF;
     }
 
     if (!ReleaseSemaphore(s, 1, NULL))