anchor.diff:                      if not running then 
                           empty, 0L
                       else
  -                        while pending.Count = 0 do Monitor.Wait lockObj |> ignore
  +                        while pending.Count = 0 && running do Monitor.Wait lockObj |> ignore
                           if not running then
                               empty, 0L
                           elif totalSize >= 0L then
  
positive.code:             lock lockObj (fun () ->
                  if running then
                      running <- false
                      true
                  else
                      false
  
negative.code: 
          if wait then
              //trigger.Signal()
              threads |> List.iter (fun t -> t.Join())
  
      member x.Enqueue(commands : seq<CopyCommand>) =
  