From 58726a67d7859ce083375e2a9e4722827f3969c8 Mon Sep 17 00:00:00 2001 From: Davide De Rosa Date: Sun, 23 Sep 2018 11:02:20 +0200 Subject: [PATCH] Update SwiftyBeaver for MemoryDestination See for reference: - https://github.com/pia-foss/tunnel-apple/pull/15 - https://github.com/SwiftyBeaver/SwiftyBeaver/pull/299 --- Podfile.lock | 4 +-- .../AppExtension/MemoryDestination.swift | 25 ++++++++----------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/Podfile.lock b/Podfile.lock index 5dce3e6..38af694 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,6 +1,6 @@ PODS: - OpenSSL-Apple (1.1.0h) - - SwiftyBeaver (1.6.0) + - SwiftyBeaver (1.6.1) DEPENDENCIES: - OpenSSL-Apple (~> 1.1.0h) @@ -13,7 +13,7 @@ SPEC REPOS: SPEC CHECKSUMS: OpenSSL-Apple: cd153d705ef350eb834ae7ff5f21f792b51ed208 - SwiftyBeaver: e45759613e50b522b0e6f53b1f0f14389b45ca34 + SwiftyBeaver: ccfcdf85a04d429f1633f668650b0ce8020bda3a PODFILE CHECKSUM: db783bdfb06f72df39d3c99df20aafdb51e0f7c6 diff --git a/TunnelKit/Sources/AppExtension/MemoryDestination.swift b/TunnelKit/Sources/AppExtension/MemoryDestination.swift index 4de81c7..4630a23 100644 --- a/TunnelKit/Sources/AppExtension/MemoryDestination.swift +++ b/TunnelKit/Sources/AppExtension/MemoryDestination.swift @@ -39,8 +39,6 @@ import Foundation import SwiftyBeaver class MemoryDestination: BaseDestination, CustomStringConvertible { - private let queue = DispatchQueue(label: "MemoryDestination") - private var buffer: [String] = [] var maxLines: Int? @@ -51,36 +49,35 @@ class MemoryDestination: BaseDestination, CustomStringConvertible { } func start(with existing: [String]) { - queue.sync { - buffer = existing + execute(synchronously: true) { + self.buffer = existing } } func flush(to: UserDefaults, with key: String) { - queue.sync { - to.set(buffer, forKey: key) + execute(synchronously: true) { + to.set(self.buffer, forKey: key) } to.synchronize() } var description: String { - return queue.sync { - return buffer.joined(separator: "\n") + return executeSynchronously { + return self.buffer.joined(separator: "\n") } } // MARK: BaseDestination + // XXX: executed in SwiftyBeaver queue. DO NOT invoke execute* here (sync in sync would crash otherwise) override func send(_ level: SwiftyBeaver.Level, msg: String, thread: String, file: String, function: String, line: Int, context: Any?) -> String? { guard let message = super.send(level, msg: msg, thread: thread, file: file, function: function, line: line) else { return nil } - queue.sync { - buffer.append(message) - if let maxLines = maxLines { - while (buffer.count > maxLines) { - buffer.removeFirst() - } + buffer.append(message) + if let maxLines = maxLines { + while buffer.count > maxLines { + buffer.removeFirst() } } return message