Haiku's Scheduler: Priorities, Real-Time Work, and Responsive Multimedia
How runnable threads, priorities, blocking, and CPU allocation affect Haiku's desktop and media workloads.
Haiku’s scheduler chooses among runnable threads; a thread waiting on a port, semaphore, timer, or I/O should not consume CPU. Priorities influence service, but raising every multimedia thread cannot create capacity and may starve the desktop.
Applications should block on events instead of polling, bound work on high-priority callbacks, and move decoding or disk I/O to appropriate workers. Priority inversion and locks held across slow operations can produce glitches that look like insufficient CPU.
Diagnose with thread state and timing, not total CPU alone. A single runnable loop can monopolize a core while a blocked real-time producer misses its deadline on another dependency.
Sources: Haiku/Be thread and team overview, Haiku kernel documentation