Ensure that callback is called only once and never synchronously