X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=libchimara%2Fglk.c;h=f3ae9c1a61c0e2eec4c94ccdd9cecebc0589dca3;hb=refs%2Fheads%2Fgtk3;hp=f5df12ee4cc80c7fd88dd055bb11f91f52f6085f;hpb=f19a194bd066ea4320c1c6b6b8c5a375f7787af5;p=projects%2Fchimara%2Fchimara.git diff --git a/libchimara/glk.c b/libchimara/glk.c index f5df12e..f3ae9c1 100644 --- a/libchimara/glk.c +++ b/libchimara/glk.c @@ -7,7 +7,7 @@ #include "gi_blorb.h" #include "window.h" -G_GNUC_INTERNAL GPrivate *glk_data_key = NULL; +G_GNUC_INTERNAL GPrivate glk_data_key = G_PRIVATE_INIT(NULL); /** * glk_exit: @@ -43,7 +43,7 @@ G_GNUC_INTERNAL GPrivate *glk_data_key = NULL; void glk_exit(void) { - ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key); + ChimaraGlkPrivate *glk_data = g_private_get(&glk_data_key); shutdown_glk_pre(); @@ -74,15 +74,15 @@ glk_exit(void) glk_put_string("\n"); flush_window_buffer(largewin); } - - g_mutex_lock(glk_data->shutdown_lock); + + g_mutex_lock(&glk_data->shutdown_lock); for(win = glk_window_iterate(NULL, NULL); win; win = glk_window_iterate(win, NULL)) { if(win->type == wintype_TextGrid || win->type == wintype_TextBuffer) g_signal_handler_unblock(win->widget, win->shutdown_keypress_handler); } - g_cond_wait(glk_data->shutdown_key_pressed, glk_data->shutdown_lock); - g_mutex_unlock(glk_data->shutdown_lock); - + g_cond_wait(&glk_data->shutdown_key_pressed, &glk_data->shutdown_lock); + g_mutex_unlock(&glk_data->shutdown_lock); + shutdown_glk_post(); g_signal_emit_by_name(glk_data->self, "stopped");