accuratly lock()