fix double-close race