anchor.diff:      let mutable bgOpCts = new CancellationTokenSource()
   
       let threadsUsed = System.Collections.Concurrent.ConcurrentDictionary<int, byte>()
  +
  +    let useThread (thread: Thread) =
  +        thread.CurrentUICulture <- culture
  +        threadsUsed.[thread.ManagedThreadId] <- 0uy
  +        { new IDisposable with 
  +            member _.Dispose() = 
  +                let res, _ = threadsUsed.TryRemove(thread.ManagedThreadId)
  +                assert res
  +        }
   
       /// Mailbox dispatch function.
       let builder = 
  
positive.code:                         Trace.TraceInformation("Reactor: {0:n3} --> {1}.{2} ({3}), remaining {4}", DateTime.Now.TimeOfDay.TotalSeconds, userOpName, opName, opArg, inbox.CurrentQueueLength)
                          let time = Stopwatch()
                          time.Start()
  
                          threadsUsed.[currentThread.ManagedThreadId] <- 0uy
                          op ctok
                          let res, _ = threadsUsed.TryRemove(currentThread.ManagedThreadId)
                          assert res
  
                          time.Stop()
                          let span = time.Elapsed
                          //if span.TotalMilliseconds > 100.0 then 
  
negative.code:                                             pauseBeforeBackgroundWork
                                      return! inbox.TryReceive(timeout) }
  
                      use _disposable = useThread Thread.CurrentThread
  
                      match msg with
                      | Some (SetBackgroundOp bgOpOpt) -> 
  