tao icon indicating copy to clipboard operation
tao copied to clipboard

Change run loop observer mode to common modes to prevent freezing on iOS

Open rapporian opened this issue 2 weeks ago • 1 comments

Proposed fix for issue #1162 - Needs maintainer validation.

On iOS, all events are blocked while the user is scrolling. This breaks every Tao-based iOS app that needs real-time updates during scroll.

Affected

  • Signal/state updates
  • Async task completions
  • Cross-thread UI communication

iOS run loop modes:

Mode When Active DefaultMode Observers CommonModes Observers
kCFRunLoopDefaultMode Normal ✅ Fire ✅ Fire
UITrackingRunLoopMode Scrolling ❌ Don't fire ✅ Fire

The run loop observers are registered for kCFRunLoopDefaultMode only. During scroll, iOS switches to UITrackingRunLoopMode — observers aren't registered for that mode, so they don't fire and events don't get processed.

rapporian avatar Dec 13 '25 10:12 rapporian

Package Changes Through 7678b4f6e9c2be36a98529936cab615aff2aeb2b

No changes.

Add a change file through the GitHub UI by following this link.


Read about change files or the docs at github.com/jbolda/covector

github-actions[bot] avatar Dec 16 '25 11:12 github-actions[bot]