aboutsummaryrefslogtreecommitdiff
path: root/libjava/jni/gtk-peer/gtk_jawt.c
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/jni/gtk-peer/gtk_jawt.c')
-rw-r--r--libjava/jni/gtk-peer/gtk_jawt.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/libjava/jni/gtk-peer/gtk_jawt.c b/libjava/jni/gtk-peer/gtk_jawt.c
index cba3b15..ed5f3f5 100644
--- a/libjava/jni/gtk-peer/gtk_jawt.c
+++ b/libjava/jni/gtk-peer/gtk_jawt.c
@@ -153,6 +153,21 @@ classpath_jawt_get_drawable (JNIEnv* env, jobject canvas)
}
jint
+classpath_jawt_object_lock (jobject lock)
+{
+ JNIEnv *env = gdk_env();
+ (*env)->MonitorEnter (env, lock);
+ return 0;
+}
+
+void
+classpath_jawt_object_unlock (jobject lock)
+{
+ JNIEnv *env = gdk_env();
+ (*env)->MonitorExit (env, lock);
+}
+
+jint
classpath_jawt_lock ()
{
gdk_threads_enter ();
@@ -164,3 +179,19 @@ classpath_jawt_unlock ()
{
gdk_threads_leave ();
}
+
+jobject
+classpath_jawt_create_lock ()
+{
+ JNIEnv *env = gdk_env ();
+ jobject lock = (*env)->NewStringUTF (env, "jawt-lock");
+ NSA_SET_GLOBAL_REF (env, lock);
+ return lock;
+}
+
+void
+classpath_jawt_destroy_lock (jobject lock)
+{
+ JNIEnv *env = gdk_env ();
+ NSA_DEL_GLOBAL_REF (env, lock);
+}