// Author: 金书记 | Author: Jin Shuji
//! Dispatch push after releasing the pusher list lock.
//! 释放推送器列表锁后再逐个 await。
use Arc;
use crateSaTokenResult;
use crate;
/// Clone the pusher list, drop the lock, then await each pusher.
/// 先克隆列表并释放锁,再逐个 await,避免写锁(register_pusher)被饿死。
pub async