diff options
Diffstat (limited to 'libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c')
| -rw-r--r-- | libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c | 18 |
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 8cb9e2f5d68..bb31233e35c 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"); */ |

