From 5a88984d34304d3c96523515bd71439d58e02d23 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Thu, 27 Jan 2022 08:10:22 +0800 Subject: [PATCH] Guard synchronizedList's iteration It's needed to guard a synchronizedList when iterating it --- .../java/com/topjohnwu/magisk/ui/flash/FlashViewModel.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/topjohnwu/magisk/ui/flash/FlashViewModel.kt b/app/src/main/java/com/topjohnwu/magisk/ui/flash/FlashViewModel.kt index 02aa41992..ef8f6bbb6 100644 --- a/app/src/main/java/com/topjohnwu/magisk/ui/flash/FlashViewModel.kt +++ b/app/src/main/java/com/topjohnwu/magisk/ui/flash/FlashViewModel.kt @@ -103,9 +103,11 @@ class FlashViewModel : BaseViewModel() { val name = "magisk_install_log_%s.log".format(now.toTime(timeFormatStandard)) val file = MediaStoreUtils.getFile(name, true) file.uri.outputStream().bufferedWriter().use { writer -> - logItems.forEach { - writer.write(it) - writer.newLine() + synchronized(logItems) { + logItems.forEach { + writer.write(it) + writer.newLine() + } } } SnackbarEvent(file.toString()).publish()