aboutsummaryrefslogtreecommitdiff
path: root/libjava/jni
diff options
context:
space:
mode:
authorThomas Fitzsimmons <fitzsim@gcc.gnu.org>2005-05-03 23:53:27 +0000
committerThomas Fitzsimmons <fitzsim@gcc.gnu.org>2005-05-03 23:53:27 +0000
commit9247d229f65bc56a6fc285e0341eff74a830af76 (patch)
treea10fd01b9f72f7f247874cf6a02f8ec3e7752463 /libjava/jni
parentf525d7a75ffa9e02d094828e91b2c8af49272e61 (diff)
downloadgcc-9247d229f65bc56a6fc285e0341eff74a830af76.zip
gcc-9247d229f65bc56a6fc285e0341eff74a830af76.tar.gz
gcc-9247d229f65bc56a6fc285e0341eff74a830af76.tar.bz2
2005-05-03 Thomas Fitzsimmons <fitzsim@redhat.com>
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c (init_glib_threads): Check if threading system is already initialized. From-SVN: r99196
Diffstat (limited to 'libjava/jni')
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
index 8cb9e2f..bb31233 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
@@ -275,10 +275,22 @@ init_glib_threads(JNIEnv *env, jint portableNativeSync)
}
(*env)->GetJavaVM( env, &the_vm );
- if (portableNativeSync)
- g_thread_init ( &portable_native_sync_jni_functions );
+ if (!g_thread_supported ())
+ {
+ if (portableNativeSync)
+ g_thread_init ( &portable_native_sync_jni_functions );
+ else
+ g_thread_init ( NULL );
+ }
else
- g_thread_init ( NULL );
+ {
+ /* Warn if portable native sync is desired but the threading
+ system is already initialized. In that case we can't
+ override the threading implementation with our portable
+ native sync functions. */
+ if (portableNativeSync)
+ g_printerr ("peer warning: portable native sync disabled.\n");
+ }
/* Debugging progress message; uncomment if needed: */
/* printf("called gthread init\n"); */