Skip to content

iOS Scroll freezes entire Rust event loop #5091

@rapporian

Description

@rapporian

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions