sendMessage method

Future<R> sendMessage(
  1. M message
)

Initiates an attempt to access the resource.

Implementation

Future<R> sendMessage(M message) async {
  _guards.removeExpired();
  final openTime = _guards.openTime;

  if (openTime == null) {
    _guards.addStartTime();
    return handler(message);
  }

  final completer = Completer<R>();
  _queue.add(_QueueItem(message: message, completer: completer));
  _setTimerIfNot(openTime);
  return completer.future;
}