anchor.diff:                              | None -> None
                               | Some (bgUserOpName, bgOpName, bgOpArg, bgOp) -> 
                                   let oldBgOpCts = bgOpCts
  -                                bgOpCts <- new CancellationTokenSource()
  +                                lock gate (fun () -> bgOpCts <- new CancellationTokenSource())
                                   oldBgOpCts.Dispose()
                                   Some (bgUserOpName, bgOpName, bgOpArg, bgOp ctok)
   
  
positive.code:     // so that when the reactor picks up a thread from the thread pool we can set the culture
      let mutable culture = CultureInfo(CultureInfo.CurrentUICulture.Name)
  
      let mutable bgOpCts = new CancellationTokenSource()
  
      let sw = new System.Diagnostics.Stopwatch()
  
negative.code:                         | Some (bgUserOpName, bgOpName, bgOpArg, bgOp) -> 
                              Trace.TraceInformation("Reactor: {0:n3} --> wait for background {1}.{2} ({3}), remaining {4}", DateTime.Now.TimeOfDay.TotalSeconds, bgUserOpName, bgOpName, bgOpArg, inbox.CurrentQueueLength)
                              let oldBgOpCts = bgOpCts
                              lock gate (fun () -> bgOpCts <- new CancellationTokenSource())
                              oldBgOpCts.Dispose()
                              
                              try 
  