release method

void release()

Releases one permit (increments available count); unblocks one waiter if any.

Implementation

void release() {
  _available++;
  if (_waiters.isNotEmpty) {
    _waiters.removeAt(0)();
  }
}