while(!gDone)の中でグルグルまわっています。ゲーム終了(cmd + Q)が選択されると gDone が true になってこのループを抜けて main() (file:main.c)に戻っていきます。main()についてはこちらをご覧下さい。
{
}
void eventLoop(void)
{
RgnHandle cursorRgn;
Boolean gotEvent;
EventRecord event;
gDone = false;
cursorRgn = NewRgn();
while(!gDone){if ( gHasWaitNextEvent )
{adjustCursor(cursorRgn);
gotEvent = WaitNextEvent(everyEvent, &event, KMAXLONG, cursorRgn);}
else
{SystemTask();
gotEvent = GetNextEvent(everyEvent, &event);}
if ( gotEvent )
{doEvent(&event);}
else
{doNullEvent(&event);}}
}この中では、WaitNextEvent()とdoEvent()がキモです。