マルチタスク成功したかのように見えたけど失敗してる。それは複数のタスクから同じクラスにアクセスすると止まるというものだ。以下の2つのソースはやっていることは同じだが上の方はqemuが止まり、下の方だと動きつづける
void taskA(){ for(;;){ IO::hlt(); } } void taskB(){ for(;;){ IO::hlt(); } }
void taskA(){ for(;;){ asmHLT(); } } void taskB(){ for(;;){ asmHLT(); } }