diff options
| author | Riddle Hsu <riddlehsu@google.com> | 2022-07-07 00:38:37 +0000 |
|---|---|---|
| committer | Riddle Hsu <riddlehsu@google.com> | 2022-07-07 00:52:59 +0000 |
| commit | 14bfb89c8a719c34b61ffe1614522d7b4263faa5 (patch) | |
| tree | c51acd87d4f77f302edac93615af2c9bb7a996ce /core/java/android/inputmethodservice/InputMethodService.java | |
| parent | d69caeeeda0a99baf010969585cdbf112d8648d7 (diff) | |
Fix race of releasing leashes with shell recents transition
The code flow:
RecentsAnimationController#finishController
mOnFinishedListener.accept(this);
RecentsAnimationCallbacks#onAnimationFinished
*Post to "main" thread
RecentsAnimationListener#onRecentsAnimationFinished
TaskAnimationManager#cleanUpRecentsAnimation
Invoke SurfaceControl#release
*Post to "UiThreadHelper" thread
RemoteTransitionCompat.RecentsControllerWrap#finish
Invoke SurfaceControl.Transaction#remove
on the same SurfaceControl.
Then it may be either NullPointerException from
SurfaceControl#checkNotReleased. Or rarely native crash by
changing the surface control from 2 threads at the same time.
Bug: 238192072
Bug: 238047903
Bug: 237631001
Bug: 237497909
Bug: 235616350
Test: Loop launch app and swipe to home.
Change-Id: I7e4ce2c273b8396ed464eb48426fd4435d6c5338
Diffstat (limited to 'core/java/android/inputmethodservice/InputMethodService.java')
0 files changed, 0 insertions, 0 deletions
