use unified lock