X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=libchimara%2Fglk.c;h=27e30072769198e0ec2a0ec2959ca0a0a5fee8d6;hb=d5610e149e0384a24d00727a5815df12e85de026;hp=c4f395441de42e7331bdc3cb3bf4be1bc9236ee7;hpb=78652af29a2f39e626febd5f4213da57d3a13901;p=projects%2Fchimara%2Fchimara.git diff --git a/libchimara/glk.c b/libchimara/glk.c index c4f3954..27e3007 100644 --- a/libchimara/glk.c +++ b/libchimara/glk.c @@ -6,7 +6,7 @@ #include "chimara-glk-private.h" #include "gi_blorb.h" -ChimaraGlkPrivate *glk_data = NULL; +G_GNUC_INTERNAL GPrivate *glk_data_key = NULL; /** * glk_exit: @@ -42,7 +42,10 @@ ChimaraGlkPrivate *glk_data = NULL; void glk_exit(void) { - g_signal_emit_by_name(glk_data->self, "stopped"); + ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key); + + if(!glk_data->in_startup) + g_signal_emit_by_name(glk_data->self, "stopped"); /* Stop any timers */ glk_request_timer_events(0); @@ -53,7 +56,6 @@ glk_exit(void) glk_stream_close(glk_data->resource_file, NULL); } - glk_data = NULL; g_thread_exit(NULL); }