私のAndroidアプリケーションでは、ネイティブスレッドからJavaコードへのコールバックがあり、メインUIスレッドと同期する必要があります。UIスレッドは、ネイティブスレッドから返された情報に基づいてオプションのリストを表示することを目的としています。ユーザーがオプションを選択するまで、ネイティブスレッドはブロックする必要があります。ユーザーがオプションを選択すると、ネイティブスレッドが値を読み取り、実行を継続します。
ConditionVariableを使用してこのソリューションを実装しようとしましたが、「致命的なスピンオンサスペンド、スレッドのダンプ」というコメントを含むVMエラーが発生します。
Javaベースの同期オブジェクトを使用してこれらのスレッドを同期することはできないように見えます。2つのJavaスレッドがある場合、コードは完全に機能します。
一般に、Javaベースの同期オブジェクトを使用してJavaとネイティブスレッドを同期する方法はありますか、または同期を実装するNDK関数へのJavaスレッドからの呼び出しでNDKを使用して実装する必要がありますか?