Если срок действия токена истёк у нескольких запросов, каждый из них может запустить обновление. В схеме из статьи
AuthManager сделан актором: он последовательно обращается к своему состоянию и хранит текущую Task. Первый вызов создаёт задачу обновления, остальные ждут её результат. После завершения defer очищает ссылку на задачу. Так приложение отправляет один запрос на новый токен вместо нескольких.Перед сетевым вызовом
Networking просит у менеджера действующий токен. Если запрос завершается ошибкой из-за токена, клиент обновляет его и повторяет исходный запрос один раз. Повторная ошибка завершает операцию, поэтому цикл не становится бесконечным.В разборе потока на Swift Concurrency показаны реализации обоих объектов. Пример упрощён: токен хранится в свойстве только для демонстрации, а в приложении автор рекомендует Keychain.
