tao
tao copied to clipboard
Change run loop observer mode to common modes to prevent freezing on iOS
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.
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