diff --git a/smp/callback001/Main.hs b/smp/callback001/Main.hs index 0abdbaf8f36bb68bf36804b3c59f3caa0a9521da..84086319604c79e1a8b0577963fae5ab75d8c703 100644 --- a/smp/callback001/Main.hs +++ b/smp/callback001/Main.hs @@ -1,6 +1,14 @@ {-# OPTIONS_GHC -fffi #-} -- This benchmark is also ffi014 in the test suite. +-- This program behaves unpredictably with the non-threaded RTS, +-- because depending on when the context switches happen it might end +-- up building a deep stack of callbacks. When this happens, the run +-- queue gets full of threads that have finished but cannot exit +-- because they do not belong to the topmost call to schedule(), and +-- the scheduler repeatedly traverses the run queue full of these +-- zombie threads. + module Main where import Control.Concurrent