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