make sure a busy-waiting loop can't block the GC (and hence the whole VM)