diff --git a/WireGuardNetworkExtension/PacketTunnelProvider.swift b/WireGuardNetworkExtension/PacketTunnelProvider.swift index 9959dec..e884b8f 100644 --- a/WireGuardNetworkExtension/PacketTunnelProvider.swift +++ b/WireGuardNetworkExtension/PacketTunnelProvider.swift @@ -181,7 +181,7 @@ class WireGuardContext { private var packetFlow: NEPacketTunnelFlow private var outboundPackets: [NEPacket] = [] private var isTunnelClosed: Bool = false - private let readPacketCondition = NSCondition() + private var readPacketCondition = NSCondition() init(packetFlow: NEPacketTunnelFlow) { self.packetFlow = packetFlow @@ -193,7 +193,9 @@ class WireGuardContext { } func packetsRead(packets: [NEPacket]) { + readPacketCondition.lock() outboundPackets.append(contentsOf: packets) + readPacketCondition.unlock() readPacketCondition.signal() }