Skip to content

Commit 25622fb

Browse files
authored
fix a logger deadlock (#91)
1 parent 341e04f commit 25622fb

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

NeewerLite/NeewerLite/Common/Logger.swift

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ public class Logger {
244244
}
245245

246246
private static func rotateLogFile() {
247-
logQueue.sync {
247+
logQueue.async {
248248
fileHandle?.closeFile()
249249
fileHandle = nil
250250
// Re-initialize fileHandle
@@ -263,13 +263,20 @@ public class Logger {
263263
}
264264

265265
public static func syncToFile() {
266-
logQueue.sync {
267-
fileHandle?.synchronizeFile()
266+
// Avoid deadlock by checking if we're on main thread
267+
if Thread.isMainThread {
268+
logQueue.async {
269+
fileHandle?.synchronizeFile()
270+
}
271+
} else {
272+
logQueue.sync {
273+
fileHandle?.synchronizeFile()
274+
}
268275
}
269276
}
270277

271278
private static func writeToFile(_ string: String) {
272-
logQueue.sync {
279+
logQueue.async {
273280
guard let handle = fileHandle else {
274281
print("Logger error: fileHandle is nil")
275282
return

0 commit comments

Comments
 (0)