close method

  1. @override
void close()
override

Closes the sink.

The add method must not be called after this method.

Calling this method more than once is allowed, but does nothing.

Implementation

@override
void close() {
  if (_isClosed) {
    return;
  }

  _isClosed = true;
  sleep = false;
  while (!sleep) {
    final h = handle;
    handle = null;
    if (h == null) {
      break;
    }

    h();
  }

  if (_buffering != 0) {
    throw StateError('On closing, an incomplete buffering was detected');
  }

  if (data.isNotEmpty) {
    data = '';
  }
}