anchor.diff:              task.Start ()
   
               // wait for task to finish starting
  -            SpinWait.SpinUntil (fun () -> started)
  +            while not started do Thread.Yield () |> ignore<bool>
   
           member this.EnqueueMessage message =
               if Option.isNone taskOpt then raise (InvalidOperationException "Render process not yet started or already terminated.")
  
positive.code:                 freeSpriteMessages messages
  
                  // loop until swap is requested
                  SpinWait.SpinUntil (fun () -> swap || terminated)
  
                  // guard against early termination
                  if not terminated then
  
negative.code:         while not terminated do
  
              // loop until submission exists
              while Option.isNone submissionOpt && not terminated do Thread.Yield () |> ignore<bool>
  
              // guard against early termination
              if not terminated then
  