put a lock around refresh ops