tryAcquire method

  1. @override
  2. @useResult
Future<bool> tryAcquire(
  1. Duration timeout
)
override

Implementation

@override
@useResult
Future<bool> tryAcquire(Duration timeout) async {
  if (_owner == null) {
    _owner = Zone.current;
    _count++;
    return true;
  }

  if (_owner == Zone.current) {
    _count++;
    return true;
  }

  final isSuccess = await _queue.enqueue(timeout);
  if (isSuccess) {
    _owner = Zone.current;
    _count++;
  }

  return isSuccess;
}