projects
/
projects
/
chimara
/
chimara.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Started using thread-private data. Multisession still doesn't work, but regular opera...
[projects/chimara/chimara.git]
/
libchimara
/
glk.c
diff --git
a/libchimara/glk.c
b/libchimara/glk.c
index 2f7e10f719184cfcba5094948d034599c0553d02..27e30072769198e0ec2a0ec2959ca0a0a5fee8d6 100644
(file)
--- a/
libchimara/glk.c
+++ b/
libchimara/glk.c
@@
-6,7
+6,7
@@
#include "chimara-glk-private.h"
#include "gi_blorb.h"
#include "chimara-glk-private.h"
#include "gi_blorb.h"
-G_GNUC_INTERNAL
ChimaraGlkPrivate *glk_data
= NULL;
+G_GNUC_INTERNAL
GPrivate *glk_data_key
= NULL;
/**
* glk_exit:
/**
* glk_exit:
@@
-42,6
+42,8
@@
G_GNUC_INTERNAL ChimaraGlkPrivate *glk_data = NULL;
void
glk_exit(void)
{
void
glk_exit(void)
{
+ ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
+
if(!glk_data->in_startup)
g_signal_emit_by_name(glk_data->self, "stopped");
if(!glk_data->in_startup)
g_signal_emit_by_name(glk_data->self, "stopped");
@@
-54,7
+56,6
@@
glk_exit(void)
glk_stream_close(glk_data->resource_file, NULL);
}
glk_stream_close(glk_data->resource_file, NULL);
}
- glk_data = NULL;
g_thread_exit(NULL);
}
g_thread_exit(NULL);
}