1 #include "msgport-factory.h"
2 #include "msgport-manager.h"
5 GHashTable *__managers ; /* GThread:MsgPortManager */
6 G_LOCK_DEFINE(managers);
9 void msgport_factory_init ()
14 __managers = g_hash_table_new_full (g_direct_hash, g_direct_equal,
15 NULL, (GDestroyNotify)g_object_unref);
20 void msgport_factory_uninit ()
25 g_hash_table_destroy (__managers);
32 MsgPortManager * msgport_factory_get_manager ()
34 MsgPortManager *manager = NULL;
35 GThread *self_thread = g_thread_self ();
37 if (!__managers) msgport_factory_init ();
41 manager = MSGPORT_MANAGER (g_hash_table_lookup (__managers, self_thread));
44 manager = msgport_manager_new ();
47 g_hash_table_insert (__managers, (gpointer)self_thread, manager);