markConnectionDone method
标记连接完成(内部使用,子类可访问)
Implementation
void markConnectionDone(String id) {
var completer = _connectionCompleters[id];
// 如果 Completer 不存在,创建一个并立即完成它
// 这样即使 waitForAllConnectionsDone() 在连接完成后才调用,也能正确等待
if (completer == null) {
completer = Completer<void>();
completer.complete();
_connectionCompleters[id] = completer;
return;
}
// Completer 已存在,如果未完成则完成它
if (!completer.isCompleted) {
completer.complete();
}
// 注意:不立即移除 Completer,保留它直到 waitForAllConnectionsDone() 完成
// 这样即使 waitForAllConnectionsDone() 在连接完成后才调用,也能正确等待
}