begin method

int begin()

Open the gate for one transition.

Implementation

int begin() {
  if (_consumers.isEmpty) return ++_token;
  _failsafeTimer?.cancel();
  _navigating = true;
  final token = ++_token;
  _failsafeTimer = Timer(failsafe, () {
    if (_token != token) return;
    _release();
  });
  return token;
}