我正在使用Allegro制作TRON游戏,在我的游戏循环中我有以下代码:
al_start_timer(game->timer);
while(1) {
al_wait_for_event(game->timer_queue, &evt);
if(evt.type == ALLEGRO_EVENT_TIMER) ++timer;
if (!al_is_event_queue_empty(game->timer_queue)) continue;
while(timer > 0) {
--timer;
process_keyboard_input(game);
if(game->should_abort) {
//program stops here
al_destroy_timer(game->timer);
return; //exits the game loop function and ends the game
}
// Colision checking
}
}
然后,在该代码下面,我进行了一些启用game->should_abort
的colision测试。但是对于一些printfs,我发现该程序一直运行,直到al_destroy_timer(game->timer)
被调用。由于某些线程违规,是否有可能停止执行?