BlueHuskyStudios / BlueHuskyStudios/DeadassSimpleMediaPlayer

`RunLoop.main` delivery stalls metadata updates during scrolling

Open
#43 0 comments 0 reactions 0 assignees View on GitHub
Automatically found Concurrency
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.