don't 'fork' every time on WaitForEvent