dw.jang c8cf982b71 fix(ImuSidecar): 사이드카가 겹쳐 걸려도 원래 콜백이 되돌아가게 콜백을 사슬로 다룬다
A34 실기 로그(2026-09-28): 병원 화면의 기울기 폴링 사이드카가 취소되기 전에 정렬
화면의 사이드카가 install 됐다 — Compose 가 취소된 효과의 finally 를 새 효과 뒤에
돌린 것. 옛 restore 는 "자기 콜백일 때만 되돌림"이라 SKIPPED 로 끝났고, 그 뒤로
imuCollector.onComplete 가 닫힌 채널의 죽은 람다를 가리킨 채 원래 콜백이 영영
돌아오지 않았다. 일반 화면들은 들어올 때 자기 콜백을 다시 걸어 당장 깨지는 것은
없었지만, 사슬이 틀어진 채 쌓이는 구조였다.

  · 콜백을 Hook(owner) 클래스로 걸어 다른 사이드카가 주인을 알아본다.
  · restore: 맨 위면 내려오고, 아니면 위쪽 사이드카의 previous 에서 자기만 뺀다.
    사이드카 아닌 것이 덮어썼으면 건드리지 않는다.
  · await 는 restore 뒤에 불려도 null (닫힌 채널을 던지지 않는다).
  · 생성자를 ImuPacketCollector 로 받아 JVM 단위시험 6건으로 잠근다. BleManager
    생성자는 부생성자로 남겨 호출부 4곳은 그대로다.

실기 확인: 병원 → 정렬 → 병원 전환에서 install/spliced out 만 찍히고 SKIPPED·
closed=true 는 0건.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-28 16:17:15 +09:00
S
Description
No description provided
20 MiB
Languages
Kotlin 97.1%
Python 2.9%