Actually, the situation is worse, because this bug appears when you start your rendering, too.
Details here as well: http://stackoverflow.com/questions/11220572/handling-interruptedexception-while-waiting-for-an-exit-signal-bug-in-android On Jun 28, 1:16 pm, Tamás Kovács <[email protected]> wrote: > Hello, > > Reproducing the bug: instantiate and add a GLSurface, then set the > interrupted status of your UI thread, and then use removeView to > detach the GLSurface. > > To be brief, I think I found a bug, because GLSurfaceView.GLThread > uses the following pattern in its requestExitAndWait() method: > > while (!mExited) { > try { > sObject.wait(); > } catch (InterruptedException ex) { > Thread.currentThread().interrupt(); > } > } > > requestExitAndWait() is called by the UI thread when you detach your > GLSurface. If your UI thread already has interrupted() status for some > reason (e.g. someone handled an interrupt via > currentThread().interrupt()), then the Android code will cause an > infinite loop, because sObject.wait() will never release the sObject > monitor (due to the exception handler), and thus the GL thread will > never be able to set mExited to true. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

