sendMessage method
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;
}