#include #include #include #include "module.h" static unsigned initialized; static void dl_print_errors(const char *prefix) { const char *err; while (err = lt_dlerror()) { if (prefix) fprintf(stderr, "%s: ", prefix); puts(lt_dlerror()); } } int module_init(void) { if (!initialized) { if (lt_dlinit() != 0) { dl_print_errors(__func__); return -1; } g_type_init(); } initialized++; return 0; } int module_exit(void) { if (--initialized) return 0; if (lt_dlexit() != 0) { dl_print_errors(__func__); return -1; } }