It's hard to know without more details about what operations your threads
are doing, and in what order.

On Mon, Jul 27, 2009 at 10:10 AM, Pieter <[email protected]> wrote:

>
> We are developing an application that uses a GLSurfaceView to display
> 3D objects. We regularly get the "Application Not Responding" dialog.
> Inspection of the dumped threads reveals something that looks
> suspiciously like a deadlock. I have added the three thread dumps
> involved below.
>
> The first thread is the main application event thread, and it is
> waiting on a join with a GLThread.
>
> The second thread is a brand new GLThread that is waiting for a
> semaphore lock presumably so it knows it has exclusive access to the
> graphics hardware.
>
> The third thread is probably a previous GLThread (the one the main
> thread is waiting for to finish), that is waiting to be notified. The
> strange thing is that the main application thread has just done a
> "mDone=true; notify();" prior to calling "wait()", so the third thread
> should have been awaken?
>
> - Has anyone else run into this issue?
> - Does anyone know of a workaround?
>
> Any help would be appreciated!
>
> DALVIK THREADS:
> "main" prio=5 tid=3 WAIT
>  | group="main" sCount=1 dsCount=0 s=0 obj=0x40018e70
>  | sysTid=713 nice=0 sched=0/0 handle=-1093387108
>  at java.lang.Object.wait(Native Method)
>  - waiting on <0x2976e0> (a java.lang.VMThread)
>  at java.lang.Thread.join(Thread.java:1020)
>  at java.lang.Thread.join(Thread.java:974)
>  at android.opengl.GLSurfaceView$GLThread.requestExitAndWait
> (GLSurfaceView.java:1056)
>  at android.opengl.GLSurfaceView.onDetachedFromWindow
> (GLSurfaceView.java:447)
>  at android.view.View.dispatchDetachedFromWindow(View.java:5230)
>
> "GLThread" prio=5 tid=23 WAIT
>  | group="main" sCount=1 dsCount=0 s=0 obj=0x43516a80
>  | sysTid=1188 nice=0 sched=0/0 handle=3235208
>  at java.lang.Object.wait(Native Method)
>  - waiting on <0x2976e0> (a java.lang.VMThread)
>  at java.lang.Thread.parkFor(Thread.java:1497)
>  at java.lang.LangAccessImpl.parkFor(LangAccessImpl.java:48)
>  at sun.misc.Unsafe.park(Unsafe.java:319)
>  at java.util.concurrent.locks.LockSupport.park(LockSupport.java:117)
>  at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt
> (AbstractQueuedSynchronizer.java:680)
>  at
>
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly
> (AbstractQueuedSynchronizer.java:836)
>  at
>
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly
> (AbstractQueuedSynchronizer.java:1143)
>  at java.util.concurrent.Semaphore.acquire(Semaphore.java:267)
>  at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:883)
>
> "GLThread" prio=5 tid=19 WAIT
>  | group="main" sCount=1 dsCount=0 s=0 obj=0x435e4098
>  | sysTid=1184 nice=0 sched=0/0 handle=4061600
>  at java.lang.Object.wait(Native Method)
>  - waiting on <0x1c74b8> (a android.opengl.GLSurfaceView$GLThread)
>  at java.lang.Object.wait(Object.java:288)
>  at android.opengl.GLSurfaceView$GLThread.guardedRun
> (GLSurfaceView.java:925)
>  at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:887)
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to