void InitNotifier(void) { Tcl_NotifierProcs notifier; /* * Only reinitialize if we are not in exit handling. The notifier can get * reinitialized after its own exit handler has run, because of exit * handlers for the I/O and timer sub-systems (order dependency). */ if (TclInExit()) { return; } notifier.createFileHandlerProc = CreateFileHandler; notifier.deleteFileHandlerProc = DeleteFileHandler; notifier.setTimerProc = SetTimer; notifier.waitForEventProc = WaitForEvent; Tcl_SetNotifier(¬ifier); /* * DO NOT create the application context yet; doing so would prevent * external applications from setting it for us to their own ones. */ initialized = 1; memset(¬ifier, 0, sizeof(notifier)); Tcl_CreateExitHandler(NotifierExitHandler, NULL); }
void tcl_glib_init () { Tcl_NotifierProcs notifier; memset(¬ifier, 0, sizeof(notifier)); notifier.createFileHandlerProc = tcl_create_file_handler; notifier.deleteFileHandlerProc = tcl_delete_file_handler; notifier.setTimerProc = tcl_set_timer; notifier.waitForEventProc = tcl_wait_for_event; Tcl_SetNotifier(¬ifier); Tcl_SetServiceMode(TCL_SERVICE_ALL); tcl_timer_pending = FALSE; tcl_file_handlers = g_hash_table_new(g_direct_hash, g_direct_equal); }