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/08/21 11:03:26 UTC
svn commit: r806467 - in /commons/sandbox/runtime/trunk/src/main:
java/org/apache/commons/runtime/Mutex.java native/os/darwin/pmutex.c
native/os/unix/pmutex.c native/os/win32/pmutex.c
Author: mturk
Date: Fri Aug 21 09:03:25 2009
New Revision: 806467
URL: http://svn.apache.org/viewvc?rev=806467&view=rev
Log:
Add Mutex.remove mathod. Usable for platforms that have kernel persistent mutexes
Modified:
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Mutex.java
commons/sandbox/runtime/trunk/src/main/native/os/darwin/pmutex.c
commons/sandbox/runtime/trunk/src/main/native/os/unix/pmutex.c
commons/sandbox/runtime/trunk/src/main/native/os/win32/pmutex.c
Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Mutex.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Mutex.java?rev=806467&r1=806466&r2=806467&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Mutex.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Mutex.java Fri Aug 21 09:03:25 2009
@@ -170,5 +170,28 @@
}
}
+ private static native int remove0(String name)
+ throws IOException, SecurityException;
+ /**
+ * Remove mutex associated with a {@code file}.
+ * <p>
+ * This function is only supported on platforms which support
+ * name-based mutexes.
+ * </p>
+ * @param file The abstract file path associated with mutex
+ * object which needs to be removed.
+ */
+ public static boolean remove(File file)
+ throws IOException, SecurityException
+ {
+ int rc;
+
+ rc = remove0(file.getPath());
+ if (rc == Status.OK)
+ return true;
+ else
+ return false;
+ }
+
}
Modified: commons/sandbox/runtime/trunk/src/main/native/os/darwin/pmutex.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/darwin/pmutex.c?rev=806467&r1=806466&r2=806467&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/darwin/pmutex.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/darwin/pmutex.c Fri Aug 21 09:03:25 2009
@@ -749,3 +749,16 @@
return mtxo;
}
+ACR_JNI_EXPORT_DECLARE(jint, Mutex, remove0)(ACR_JNISTDARGS,
+ jstring name)
+{
+
+ int rc = ACR_SUCCESS;
+ UNREFERENCED_O;
+
+ WITH_CSTR(name) {
+ rc = ACR_ProcMutexRemove(_E, J2S(name));
+ } END_WITH_CSTR(name);
+ return rc;
+}
+
Modified: commons/sandbox/runtime/trunk/src/main/native/os/unix/pmutex.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/unix/pmutex.c?rev=806467&r1=806466&r2=806467&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/unix/pmutex.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/unix/pmutex.c Fri Aug 21 09:03:25 2009
@@ -79,22 +79,6 @@
#endif
};
-ACR_CLASS_LDEF(Mutex)
-{
- int rv;
-
- if ((rv = ACR_LoadClass(_E, &_clazzn, 0)) != ACR_SUCCESS)
- return rv;
- J_LOAD_METHOD(0000);
-
- return ACR_SUCCESS;
-}
-
-ACR_CLASS_UDEF(Mutex)
-{
- ACR_UnloadClass(_E, &_clazzn);
-}
-
#if defined(ACR_USE_SYSV_MUTEX)
static int mutex_owner_cleanup(void *mutex, int type, unsigned int flags)
@@ -641,6 +625,25 @@
#endif /* ACR_USE_SYSV_MUTEX */
+/* Java API
+ */
+
+ACR_CLASS_LDEF(Mutex)
+{
+ int rv;
+
+ if ((rv = ACR_LoadClass(_E, &_clazzn, 0)) != ACR_SUCCESS)
+ return rv;
+ J_LOAD_METHOD(0000);
+
+ return ACR_SUCCESS;
+}
+
+ACR_CLASS_UDEF(Mutex)
+{
+ ACR_UnloadClass(_E, &_clazzn);
+}
+
static int mtx_descriptor_cleanup(ACR_JNISTDARGS,
acr_descriptor_cb_type_e cm,
acr_descriptor_cb_t *dp)
@@ -742,3 +745,16 @@
return mtxo;
}
+ACR_JNI_EXPORT_DECLARE(jint, Mutex, remove0)(ACR_JNISTDARGS,
+ jstring name)
+{
+
+ int rc = ACR_SUCCESS;
+ UNREFERENCED_O;
+
+ WITH_CSTR(name) {
+ rc = ACR_ProcMutexRemove(_E, J2S(name));
+ } END_WITH_CSTR(name);
+ return rc;
+}
+
Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/pmutex.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/pmutex.c?rev=806467&r1=806466&r2=806467&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/win32/pmutex.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/win32/pmutex.c Fri Aug 21 09:03:25 2009
@@ -309,3 +309,10 @@
return mtxo;
}
+ACR_JNI_EXPORT_DECLARE(jint, Mutex, remove0)(ACR_JNISTDARGS,
+ jstring name)
+{
+ UNREFERENCED_STDARGS;
+ return ACR_ENOTIMPL;
+}
+