We depend on throwing exceptions in case of fail in acquiring lock. I guess we need to use `lock!` or `with_lock` method instead of `lock`.