<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Scheduling and the Recomposer on Staticvar Learn</title><link>https://learn.staticvar.dev/courses/jetpack-compose-internals/07-scheduling-and-recomposer/</link><description>Recent content in Scheduling and the Recomposer on Staticvar Learn</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:link href="https://learn.staticvar.dev/courses/jetpack-compose-internals/07-scheduling-and-recomposer/index.xml" rel="self" type="application/rss+xml"/><item><title>The recomposition loop and frame clock</title><link>https://learn.staticvar.dev/courses/jetpack-compose-internals/07-scheduling-and-recomposer/01-the-recomposition-loop-and-frame-clock/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://learn.staticvar.dev/courses/jetpack-compose-internals/07-scheduling-and-recomposer/01-the-recomposition-loop-and-frame-clock/</guid><description>Status: The separation between scheduling, composition, and application is Durable . The state names, queues, and frame ordering below are Version-specific at the pinned AndroidX revision.
Outcome Given a state write, explain when it becomes recomposition work, when a frame is requested, and why recompose, applyChanges, and applyLateChanges are different calls.
A recomposer is a work-state machine Recomposer.State distinguishes inactive, idle, pending-work, and shutdown states. Its lock-protected lists hold snapshot invalidations, invalidated compositions, and work awaiting application (Recomposer.</description></item><item><title>Historical concurrent recomposition and current pausable composition</title><link>https://learn.staticvar.dev/courses/jetpack-compose-internals/07-scheduling-and-recomposer/02-concurrent-and-pausable-composition/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://learn.staticvar.dev/courses/jetpack-compose-internals/07-scheduling-and-recomposer/02-concurrent-and-pausable-composition/</guid><description>Status: “Calculate a change list, then apply it” is Durable . The public concurrent runner is removed at the pinned revision; current PausableComposition, PausedCompositionImpl, ShouldPauseCallback, and RecordingApplier details are Version-specific . The Experimental label below marks the removed, changing history—not a current Kotlin opt-in annotation.
Outcome Explain what may run away from the applier, where mutable-snapshot conflicts are detected, and why a paused composition is not usable until apply().</description></item></channel></rss>