diff options
author | Roman Kennke <roman@kennke.org> | 2007-04-03 13:39:38 +0000 |
---|---|---|
committer | Roman Kennke <roman@kennke.org> | 2007-04-03 13:39:38 +0000 |
commit | 3d42aa7cc04fa0fbafbb8af294daff10f71fd0db (patch) | |
tree | bb2819f68b38bf9d32322c76b56edea86e383a9a /gnu/java/awt | |
parent | 591c8432e867bb788ac85a112a1714a87ab5d078 (diff) | |
download | classpath-3d42aa7cc04fa0fbafbb8af294daff10f71fd0db.tar.gz |
2007-04-03 Roman Kennke <roman@kennke.org>
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
(global_lock): New global variable that holds the object reference
to the global GTK lock.
(init_glib_threads): Add lock argument. Use
gdk_threads_set_lock_functions to replace GTK's locking function
with two callbacks that allow reentrant locking, based on
JNI's MonitorEnter() and MonitorExit().
(jni_lock_cb): New callback function for GTK locking.
(jni_unlock_cb): New callback function for GTK unlocking.
(Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit): Add lock argument.
Call init_glib_threads() with lock object.
* include/gnu_java_awt_peer_gtk_GtkToolkit.h
Regenerated.
* gnu/java/awt/peer/gtk/GtkToolkit.java
(GTK_LOCK): New static field. This is used as the global lock for
GTK.
(gtkInit): Add lock parameter.
(static_init): Initialize global lock and call gtkInit() with
that lock.
Diffstat (limited to 'gnu/java/awt')
-rw-r--r-- | gnu/java/awt/peer/gtk/GtkToolkit.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gnu/java/awt/peer/gtk/GtkToolkit.java b/gnu/java/awt/peer/gtk/GtkToolkit.java index d686336dc..1df34fb52 100644 --- a/gnu/java/awt/peer/gtk/GtkToolkit.java +++ b/gnu/java/awt/peer/gtk/GtkToolkit.java @@ -134,9 +134,11 @@ import javax.imageio.spi.IIORegistry; public class GtkToolkit extends gnu.java.awt.ClasspathToolkit { + static final Object GTK_LOCK; + private static EventQueue q; - static native void gtkInit(int portableNativeSync); + static native void gtkInit(int portableNativeSync, Object lock); static native void gtkMain(); @@ -156,8 +158,9 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit portableNativeSync = 1; // true else portableNativeSync = 0; // false - - gtkInit(portableNativeSync); + + GTK_LOCK = new String("GTK LOCK"); + gtkInit(portableNativeSync, GTK_LOCK); } public GtkToolkit () |