lock and waitable-event.