Exemple #1
0
void graphics_thread_leave(void)
{
	if(display_tid != 0) {
	  write_comm_pipe_u32 (display_pipe, DISPLAY_SIGNAL_QUIT, 1);
	  while(display_tid != 0) {
	    sleep_millis(10);
	  }
	  destroy_comm_pipe(display_pipe);
	  xfree(display_pipe);
	  display_pipe = 0;
	  uae_sem_destroy(&display_sem);
	  display_sem = 0;
	}
}
Exemple #2
0
void free_traps(void)
{
	for (int i = 0; i < TRAP_THREADS; i++) {
		if (trap_thread_id[i]) {
			if (hardware_trap_kill[i] >= 0) {
				hardware_trap_kill[i] = 0;
				write_comm_pipe_pvoid(&trap_thread_pipe[i], NULL, 1);
				while (hardware_trap_kill[i] == 0) {
					sleep_millis(1);
				}
			}
			destroy_comm_pipe(&trap_thread_pipe[i]);
			uae_end_thread(&trap_thread_id[i]);
			trap_thread_id[i] = NULL;
		}
	}
}