https://android-review.googlesource.com/#/c/105606/

On Thursday, May 29, 2014 1:45:23 AM UTC-7, Katy Ma wrote:
>
> Have you tried the opensles test case 
> under /frameworks/wilhelm/tests/examples/slesTestRecBuffQueue.cpp on kk4.4?
> Becasue I tried this case "slesTest_recBuffQueue" for several times and 
> similar deadlock issue will be reproduced easily. The case will be clocked 
> and cannot be finished.
>
> On Thursday, May 15, 2014 10:47:06 PM UTC+8, Glenn Kasten wrote:
>>
>> Thank you for your report.   We have a similar report here:
>>      https://groups.google.com/forum/#!topic/android-ndk/G7dLKAGGL28
>> I think I might have a fix, but I am looking for a test case.
>> Do you have a test case you can share, that is simpler than Skype?
>>
>> On Tuesday, May 13, 2014 9:58:34 PM UTC-7, Katy Ma wrote:
>>>
>>> When using skype call, sometimes skype call cannot be end if press end 
>>> call button, and such log will appear,
>>>
>>> "W/libOpenSLES( 2355): 
>>> frameworks/wilhelm/src/android/AudioRecorder_to_android.cpp:217: pthread 
>>> 0x62471b80 (tid 2810) sees object 0x66a0d518 was locked by pthread 
>>> 0x5fb4cc90 (tid 2377) at frameworks/wilhelm/src/itf/IObject.c:411"
>>>
>>> I think when end skype call, 
>>>
>>> 1. libOpenSLES to destroy CAudioRecorder(object locked, later will unlock 
>>> only in IObject_deinit after finish destroyed in 3.)
>>> 2. EVENT_MORE_DATA/EVENT_OVERRUN(etc.) happens and skype callback function 
>>> will handle the event with a lock(requires lock in 1.).
>>> 3. After  1.,  ~AudioRecord  will  be  called  during  destroy,it will wait 
>>> for a lock only when mThreadExitedCondition.broadcast() after 
>>> AudioRecordThread returns, however AudioRecordThread is blocked in 
>>> processAudioBuffer when handle EVENT_MORE_DATA/EVENT_OVERRUN(etc.)(requires 
>>> lock in 2.) However 1. cannot be finished if 3. is blocked. 
>>>
>>>
>>> So dead lock happened.
>>>
>>>
>>> It seems that when destroy CAudioRecoder, there's no need to handle the 
>>> event, however it's hard to sync. And handling event with lock may cause 
>>> deadlock when destroy CAudioRecorder.
>>>
>>>
>>> So can we just remove the lock when handling event? Why we need lock here? 
>>>
>>>
>>>

-- 
-- 
unsubscribe: android-porting+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-porting

--- 
You received this message because you are subscribed to the Google Groups 
"android-porting" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-porting+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to