aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--WireGuardNetworkExtension/PacketTunnelProvider.swift4
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()
}