anchor.diff:  
           member this.SubmitMessages eyePosition eyeSize eyeMargin =
               if Option.isNone taskOpt then raise (InvalidOperationException "Render process not yet started or already terminated.")
  -            while swap do Thread.Yield () |> ignore<bool>
  +            SpinWait.SpinUntil (fun () -> not swap)
               let messagesTemp = Interlocked.Exchange (&messages, SegmentedList.make ())
               submissionOpt <- Some (messagesTemp, eyePosition, eyeSize, eyeMargin)
   
  
positive.code:             task.Start ()
  
              // wait for task to finish starting
              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.")
  
negative.code:         while not terminated do
  
              // loop until submission exists
              SpinWait.SpinUntil (fun () -> Option.isSome submissionOpt || terminated)
  
              // guard against early termination
              if not terminated then
  