non-blocking event function