acquire method

Future acquire()

Acquires a permit from this semaphore, asyncronously blocking until one is available.

Implementation

Future acquire() {
  var completer = Completer();
  if (_currentCount + 1 <= maxCount) {
    _currentCount++;
    completer.complete();
  } else {
    _waitQueue.add(completer);
  }

  return completer.future;
}