ReadFile: let async component manage disconnect