В моем приложении Android у меня есть обратный вызов из собственного потока в код Java, который необходимо синхронизировать с основным потоком пользовательского интерфейса. Предполагается, что поток пользовательского интерфейса отображает список опций на основе информации, возвращаемой из собственного потока. Пока пользователь не выберет опцию, необходимо блокировать собственный поток. После того, как пользователь выбирает параметр, собственный поток считывает значение и продолжает работать.Android: Синхронизация собственного потока с основным потоком
Я попытался реализовать это решение, используя ConditionVariable, однако я получил ошибку VM с комментарием, обозначающим «Fatal spin-on-suspend, dumping threads».
Похоже, что для синхронизации этих потоков невозможно использовать объект синхронизации на основе Java. Код отлично работает в случае, когда у меня есть два потока Java.
В общем, существует ли какой-либо способ использования объекта синхронизации на основе Java для синхронизации Java и собственного потока, или это необходимо реализовать с помощью NDK с вызовом из потока Java в функцию NDK, которая реализует синхронизацию ?