refactor the this._draining.resolve(); location, since it's possible for it to get called in so many places