DioxusLabs / DioxusLabs/dioxus

iOS Scroll freezes entire Rust event loop

Open
#5,091 2 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Rust
Stars
39.1k
Forks
1.9k
Avg merge
4d 10h
Merged PRs (30d)
4

Description

# iOS Scroll freezes entire Rust event loop

### Problem

On iOS, **all events are blocked while the user is scrolling**. Events queue up and deliver only after scrolling stops.

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

### Screen Recording of Issue

https://github.com/rapporian/ios-scroll-blocks-rust/raw/refs/heads/main/ScreenRecording.mp4

_(Red dot = Rust, Green dot = JavaScript. Watch the red dot freeze during scroll while green continues.)_

### Reproduction

**Repo**: https://github.com/rapporian/ios-scroll-blocks-rust

Scroll the page. Watch the Rust-driven animation freeze while JavaScript `requestAnimationFrame` continues.

### Root Cause

During scroll, iOS switches to `UITrackingRunLoopMode` — observers don't fire, events don't get processed.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the linked iOS reproduction repository and compare the Rust-driven animation with JavaScript requestAnimationFrame during scrolling. Trace Tao’s iOS event-loop handling and verify that Rust events continue to be processed in UITrackingRunLoopMode; done means animations, async completions, and cross-thread UI communication remain responsive while scrolling.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, rust
Domain
mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.