@@ -479,28 +479,33 @@ final class NetworkProtectionPacketTunnelProvider: PacketTunnelProvider {
479479 APIRequest . Headers. setUserAgent ( DefaultUserAgentManager . duckDuckGoUserAgent)
480480 }
481481
482+ deinit {
483+ memoryPressureSource? . cancel ( )
484+ memoryPressureSource = nil
485+ }
486+
487+ private var memoryPressureSource : DispatchSourceMemoryPressure ?
488+ private let memoryPressureQueue = DispatchQueue . init ( label: " com.duckduckgo.mobile.ios.NetworkExtension.memoryPressure " )
489+
482490 private func startMonitoringMemoryPressureEvents( ) {
483- let source = DispatchSource . makeMemoryPressureSource ( eventMask: . all, queue: nil )
484-
485- let queue = DispatchQueue . init ( label: " com.duckduckgo.mobile.ios.alpha.NetworkExtension.memoryPressure " )
486- queue. async {
487- source. setEventHandler {
488- let event : DispatchSource . MemoryPressureEvent = source. mask
489- print ( event)
490- switch event {
491- case DispatchSource . MemoryPressureEvent. normal:
492- break
493- case DispatchSource . MemoryPressureEvent. warning:
494- DailyPixel . fire ( pixel: . networkProtectionMemoryWarning)
495- case DispatchSource . MemoryPressureEvent. critical:
496- DailyPixel . fire ( pixel: . networkProtectionMemoryCritical)
497- default :
498- break
499- }
491+ let source = DispatchSource . makeMemoryPressureSource ( eventMask: . all, queue: memoryPressureQueue)
500492
493+ source. setEventHandler { [ weak source] in
494+ guard let source else { return }
495+
496+ let event = source. data
497+
498+ if event. contains ( . warning) {
499+ Logger . networkProtectionMemory. warning ( " Received memory pressure warning " )
500+ DailyPixel . fire ( pixel: . networkProtectionMemoryWarning)
501+ } else if event. contains ( . critical) {
502+ Logger . networkProtectionMemory. warning ( " Received memory pressure critical warning " )
503+ DailyPixel . fire ( pixel: . networkProtectionMemoryCritical)
501504 }
502- source. resume ( )
503505 }
506+
507+ self . memoryPressureSource = source
508+ source. activate ( )
504509 }
505510
506511 private func observeServerChanges( ) {
0 commit comments