diff options
-rw-r--r-- | WireGuardNetworkExtension/PacketTunnelProvider.swift | 4 |
1 files changed, 3 insertions, 1 deletions
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() } |