release method

  1. @override
Future<void> release()
override

Releases a permit.

Implementation

@override
Future<void> release() {
  if (!_isLocked) {
    throw StateError('Unmatched call of \'release()()\' method');
  }

  if (_waitQueue.isNotEmpty) {
    _waitQueue.dequeue();
  } else {
    _isLocked = false;
  }

  return _void;
}