gpointer ldtp_thread_func (gpointer data) { SPI_event_main (); return NULL; } PyMODINIT_FUNC initldtp (void) { int init_error; PyObject *ldtp_module; gchar *env_sleep = NULL; gchar *locale_lang = NULL; PyEval_InitThreads(); init_error = SPI_init (); if (init_error) { g_warning ("Error: SPI Init\n"); return; } //gstate = PyGILState_Ensure(); // Register local print function g_set_print_handler (ldtp_print); ldtp_module = Py_InitModule ("ldtp", ldtp_methods); ldtp_error = PyErr_NewException ("ldtp.error", NULL, NULL); Py_INCREF (ldtp_error); PyModule_AddObject (ldtp_module, "error", ldtp_error); Py_AtExit (ldtp_exit); env_sleep = getenv ("WAIT_TIMEOUT"); if (env_sleep != NULL) { default_sleep = atoi (env_sleep); if (default_sleep == 0) default_sleep = 2; } ldtp_debug = getenv ("LDTP_DEBUG"); locale_lang = getenv ("LANG"); if (locale_lang && g_utf8_collate (locale_lang, "en_US.UTF-8") != 0) { g_print ("Locale languages: %s\n", locale_lang); locale_set = TRUE; setlocale (LC_ALL, ""); } /* * Register event listener for windows */ window_listener = SPI_createAccessibleEventListener ( NULL, NULL); /* * Listen for new popup dialogs */ if (window_listener) SPI_registerGlobalEventListener (window_listener, "window:activate"); AccessibleEventListener_addCallback (window_listener, report_window_event, NULL); ldtp_thread = g_thread_create (ldtp_thread_func, NULL, TRUE, NULL); return; }