fix recursive_lock