add asyncLock