event: add global wait()