fix, mind the order to lock when using multi-locks