mirror of
https://github.com/yggdrasil-network/yggdrasil-ios.git
synced 2025-04-27 21:55:10 +03:00
Fix a memory leak whn running under high load
This commit is contained in:
parent
2ea9196d03
commit
56919b83a8
1 changed files with 7 additions and 9 deletions
|
@ -9,22 +9,20 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
|
||||||
var yggdrasilConfig: ConfigurationProxy?
|
var yggdrasilConfig: ConfigurationProxy?
|
||||||
|
|
||||||
@objc func readPacketsFromTun() {
|
@objc func readPacketsFromTun() {
|
||||||
if let conduit = self.conduit {
|
autoreleasepool {
|
||||||
autoreleasepool {
|
self.packetFlow.readPackets { (packets: [Data], protocols: [NSNumber]) in
|
||||||
self.packetFlow.readPackets { (packets: [Data], protocols: [NSNumber]) in
|
for packet in packets {
|
||||||
for packet in packets {
|
try? self.yggdrasil.sendBuffer(packet, length: packet.count)
|
||||||
conduit.send(packet)
|
|
||||||
}
|
|
||||||
self.readPacketsFromTun()
|
|
||||||
}
|
}
|
||||||
|
self.readPacketsFromTun()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc func writePacketsToTun() {
|
@objc func writePacketsToTun() {
|
||||||
while let conduit = self.conduit {
|
while true {
|
||||||
autoreleasepool {
|
autoreleasepool {
|
||||||
if let data = conduit.recv() {
|
if let data = try? self.yggdrasil.recv() {
|
||||||
self.packetFlow.writePackets([data], withProtocols: [NSNumber](repeating: AF_INET6 as NSNumber, count: 1))
|
self.packetFlow.writePackets([data], withProtocols: [NSNumber](repeating: AF_INET6 as NSNumber, count: 1))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue