Use statically-allocated thread private data
[projects/chimara/chimara.git] / libchimara / chimara-glk.c
index b8926dcab94bea86d9619c9100b1747dc66714c0..d6743b63984979f2bbac03384a6a12861dd7daa9 100644 (file)
@@ -1126,9 +1126,9 @@ free_startup_data(struct StartupData *startup)
 static gpointer
 glk_enter(struct StartupData *startup)
 {
-       extern GPrivate *glk_data_key;
-       g_private_set(glk_data_key, startup->glk_data);
-       
+       extern GPrivate glk_data_key;
+       g_private_set(&glk_data_key, startup->glk_data);
+
        /* Acquire the Glk thread's references to the input queues */
        g_async_queue_ref(startup->glk_data->char_input_queue);
        g_async_queue_ref(startup->glk_data->line_input_queue);
@@ -1235,8 +1235,8 @@ chimara_glk_run(ChimaraGlk *glk, const gchar *plugin, int argc, char *argv[], GE
        g_object_notify(G_OBJECT(glk), "program-name");
        
     /* Run in a separate thread */
-       priv->thread = g_thread_create((GThreadFunc)glk_enter, startup, TRUE, error);
-       
+       priv->thread = g_thread_try_new("glk", (GThreadFunc)glk_enter, startup, error);
+
        return !(priv->thread == NULL);
 }