summaryrefslogtreecommitdiff
path: root/rs/java/android/renderscript/ProgramStore.java
diff options
context:
space:
mode:
authorToshikazu Saito <toshikazu.x.saito@sonymobile.com>2016-09-08 21:54:25 +0900
committerRobert Shih <robertshih@google.com>2019-02-25 14:20:34 -0800
commit6aee256d92dc2b3150a1568314c430291436c554 (patch)
tree4ba8422b57434ba84830c1353eaf263bd3f29dbf /rs/java/android/renderscript/ProgramStore.java
parent92f69a067c25062f55856af10623ddcfe1a3f866 (diff)
Fix a dead lock for SubtitleTrack
Dead lock happens in notifyTrackData() and scheduleUpdate() of TimeProvider. notifyTrackData() gets lock and calls SRTTrack.onData(). SRTTrack gets lock in addCue() but does not get lock in onData(). So SRTTrack.setTimeProvider() can call before next addCue() is called. When scheduleUpdate() is called from SRTTrack.setTimeProvider() in that case, dead lock happens because following reason. - TimeProvider is already gotten lock in notifyTrackData() - scheduleUpdate() tries to get lock of TimeProvider but notifyTrackData() is not finished because SRTTrack.onData() waits for calling next addCue() - SRTTrack waits for finishing setTimeProvider() to get lock - setTimeProvider() is not finished because lock cannot be gotten in scheduleUpdate() This fix changes the looper for SubtitleController to the looper used in TimeProvider$EventHandler not to interrupt a message by SubtitleController while running notifyTrackData(). Bug: 122051638 Test: check if subtitle works correctly with MediaPlayer Change-Id: Ib77144c5adb811676899a8d7e7681045663de0d2
Diffstat (limited to 'rs/java/android/renderscript/ProgramStore.java')
0 files changed, 0 insertions, 0 deletions