void qemu_thread_atexit_add(Notifier *notifier) { if (!qemu_thread_data) { if (!atexit_registered) { atexit_registered = true; atexit(run_main_thread_exit); } notifier_list_add(&main_thread_exit, notifier); } else { notifier_list_add(&qemu_thread_data->exit, notifier); } }
void qemu_thread_atexit_add(Notifier *notifier) { union NotifierThreadData ntd; ntd.ptr = pthread_getspecific(exit_key); notifier_list_add(&ntd.list, notifier); pthread_setspecific(exit_key, ntd.ptr); }
void add_migration_state_change_notifier(Notifier *notify) { notifier_list_add(&migration_state_notifiers, notify); }
void qemu_register_clock_reset_notifier(QEMUClock *clock, Notifier *notifier) { notifier_list_add(&clock->reset_notifiers, notifier); }
void main_loop_poll_add_notifier(Notifier *notify) { notifier_list_add(&main_loop_poll_notifiers, notify); }
void qemu_register_cpu_added_notifier(Notifier *notifier) { notifier_list_add(&cpu_added_notifiers, notifier); }