Android: sincronización de hilo nativo con hilo principal

En mi aplicación de Android recibí una devolución de llamada de un subproceso nativo a un código Java que debe sincronizarse con el subproceso de la interfaz de usuario principal. La intención es que el subproceso de la interfaz de usuario muestre una lista de opciones basadas en la información devuelta desde el subproceso nativo. Hasta que el usuario seleccione una opción, el hilo nativo debe bloquear. Después de que el usuario selecciona una opción, el hilo nativo lee el valor y continúa ejecutándose.

He intentado implementar esta solución utilizando una ConditionVariable; sin embargo, recibo un error de VM con el comentario que indica "Fatal spin-on-suspend, dump threads".

Parece que no es posible usar un objeto de sincronización basado en Java para sincronizar estos hilos. El código funciona perfectamente en el caso donde tengo dos hilos de Java.

En general, ¿hay alguna forma de usar un objeto de sincronización basado en Java para sincronizar un subproceso nativo y Java, o es necesario implementarlo utilizando el NDK con una llamada del subproceso de Java a una función NDK que implemente la sincronización?

Respuestas a la pregunta(1)

Su respuesta a la pregunta