requestDrain method
Implementation
Future<List<AgentResult>> requestDrain(final IntentCallDrainTrigger trigger) {
if (_disposed) {
return Future<List<AgentResult>>.value(const <AgentResult>[]);
}
final activeDrain = _activeDrain;
if (activeDrain != null) {
_drainAgain = true;
_queuedTrigger ??= trigger;
return activeDrain;
}
final drain = _runDrainLoop(trigger);
_activeDrain = drain;
return drain.whenComplete(() {
_activeDrain = null;
});
}