swiftlib_sdlan/Sources/Punchnet/HolerManager.swift
2025-07-16 17:23:56 +08:00

32 lines
619 B
Swift

//
// HolerManager.swift
// sdlan
//
// Created by on 2025/7/14.
//
import Foundation
actor HolerManager {
private var holers: [Data:Task<(), Never>] = [:]
func addHoler(dstMac: Data, creator: @escaping () -> Task<(), Never>) {
if let task = self.holers[dstMac] {
if task.isCancelled {
self.holers[dstMac] = creator()
}
} else {
self.holers[dstMac] = creator()
}
}
func cleanup() {
for holer in holers.values {
holer.cancel()
}
self.holers.removeAll()
}
}