locking design: explain use of async mode