Commit 4af06f2
fix(replay): Post checkCanRecord to main thread to prevent deadlock
onScreenshotRecorded can run on the replay executor thread (PixelCopy
masked-capture and emit paths). checkCanRecord -> pauseInternal acquires
lifecycleLock — if another thread holds that lock and submits to the
same single-threaded executor, we deadlock.
When not already on the main thread, post checkCanRecord to the main
looper so it never runs on the executor. On main thread, call directly
to preserve existing synchronous behavior.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent 6335e35 commit 4af06f2
2 files changed
Lines changed: 15 additions & 2 deletions
File tree
- sentry-android-replay/src/main/java/io/sentry/android/replay
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| |||
Lines changed: 14 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
352 | 353 | | |
353 | 354 | | |
354 | 355 | | |
355 | | - | |
| 356 | + | |
356 | 357 | | |
357 | 358 | | |
358 | 359 | | |
| |||
375 | 376 | | |
376 | 377 | | |
377 | 378 | | |
378 | | - | |
| 379 | + | |
379 | 380 | | |
380 | 381 | | |
381 | 382 | | |
| |||
444 | 445 | | |
445 | 446 | | |
446 | 447 | | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
447 | 459 | | |
448 | 460 | | |
449 | 461 | | |
| |||
0 commit comments