Future<bool> ensureSent() async { if (_waiter != null) return await _waiter!.future; _waiter = Completer<bool>(); return _waiter!.future; }