anchor.diff:          _readInProgress = false;
           if (!_unsubscribed) {
             _controller.addError(new RangeError("Bad end position: $_end"));
  -          _closeFile().then((_) { _controller.close(); });
  +          _closeFile();
             _unsubscribed = true;
           }
           return;
  
positive.code:     } else {
        openFuture = new Future.value(_File._openStdioSync(0));
      }
      openFuture
        .then((RandomAccessFile opened) {
          _openedFile = opened;
  
negative.code:           return opened.setPosition(_position);
          }
        })
        .whenComplete(() {
          _readInProgress = false;
        })
        .then((_) => _readBlock())
        .catchError((e) {
          _controller.addError(e);
          _closeFile();
        });
    }
  
  