al_destroy_timer的奇怪行为

时间:2016-12-15 01:12:38

标签: c allegro allegro5

我正在使用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)被调用。由于某些线程违规,是否有可能停止执行?

0 个答案:

没有答案