Mutex не работает на некоторых версиях Android - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть проблема, которая мучает мое приложение с первого дня.

Для некоторых пользователей по неизвестной причине Mutex не выполняет свою работу.Вот примеры кода:

object Tools {
 val Mutex = kotlinx.coroutines.sync.Mutex()
 ...
}

Затем пользователь:

 Tools.Mutex.withLock {
  DoSomeStuffWithZipFile()
}

Теперь почти для всех, он работает безупречно с 4 запущенными потоками.Но для некоторых отчетов Crashlytics я вижу, что все 4 потока в настоящее время находятся в замке, пытаясь записать один и тот же zip-файл.

Это Android 6/7/8, получивший 32% отчетакаждый, с 9 и ниже, которые имеют проблемы.

Кроме того, ошибка ENOENT нет такого файла или каталога в конструкторе RandomAccessFile () с опцией "rw", что странно само по себе ...

...