[Mona] 非同期タイマー

タイマーについていろいろな方に有意義なアドバイスと頂きました。
検討した結果、以前作った同期タイマーは破棄することになり、非同期タイマー機能を追加しました。
現時点のCVS版に追加されています。


使い方は以下の通りです。ぜひ感想をお聞かせください。

int MonaMain(List<char*>* pekoe)
{
    dword id1 = set_timer(1000);
    dword id2 = set_timer(5000);
    printf("timer start\n");

    for (int i = 0; i < 10; i++)
    {
        MessageInfo msg;

        if (Message::receive(&msg)) continue;

        switch (msg.header)
        {
            case MSG_TIMER:
            {
                printf("timer id = %x\n", msg.arg1);
                break;
            }
        }
    }

    printf("kill result=%d\n", kill_timer(id1));
    printf("kill result=%d\n", kill_timer(id2));
    printf("timer killed\n");

    return 0;
}