BlueHuskyStudios / BlueHuskyStudios/DeadassSimpleMediaPlayer
`RunLoop.main` delivery stalls metadata updates during scrolling
- Dominant language
- Swift
- Stars
- 0
- Forks
- 3
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 9
Description
```swift
metadataUpdatePublisher.receive(on: RunLoop.main)
```
`RunLoop.main` delivers only in `.default` run-loop mode. While the user is scrolling (tracking mode), delivery is **deferred until scrolling stops**. `DispatchQueue.main` has no such behavior.
The doc says "Delivery is guaranteed to occur on the main actor," which is true, but the timing caveat is invisible and directly affects list rows whose titles resolve from these pings.
Contributor guide
Research direction
Start at the metadataUpdatePublisher.receive(on: RunLoop.main) call and trace how resolved titles reach list rows during scrolling. Compare its delivery behavior with DispatchQueue.main, then verify that metadata updates are not deferred in tracking mode and that the timing caveat is visible in the documentation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- performance
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100