anchor.diff:          DistributedFunctionStore.Current.Unregister( publicID, domainID, schemaIn, schemaOut )        
       /// Clean Up 
       member internal x.CleanUp(timeOut:int) = 
  +        Logger.LogF( LogLevel.MildVerbose, fun _ -> sprintf "DistructionFunctionStore.Cleanup")
           for pair0 in x.ExportedCollections do 
               for pair1 in pair0.Value do 
                   for pair2 in pair1.Value do 
                       for pair3 in pair2.Value do 
                           let holder = pair3.Value
  +                        Logger.LogF( LogLevel.MildVerbose, fun _ -> sprintf "Cancelling distributed function %A, %A, %A, %A"
  +                                                                            pair0.Key pair1.Key pair2.Key pair3.Key
  +                                        )
                           holder.Cancel() 
           let mutable bAllDisposed = false 
           let ticksStart = DateTime.UtcNow.Ticks
  
positive.code:         else
              0, Int32.MaxValue
      /// Cancel all jobs related to this distributed function. 
      member x.Cancel() = 
          // This process is responsible for the disposing routine
          Logger.LogF( LogLevel.ExtremeVerbose, fun _ -> sprintf "Function holder %s cancelled" name)
          cts.Cancel()
      /// Can we dispose this job holder?
      member x.CanDispose() = 
          // Wait for all job in semaphore to exit
  
negative.code:                         for pair3 in pair2.Value do 
                              let holder = pair3.Value
                              if timeout || holder.CanDispose() then 
                                  Logger.LogF( LogLevel.MildVerbose, fun _ -> sprintf "Unregister distributed function %A, %A, %A, %A"
                                                                                      pair0.Key pair1.Key pair2.Key pair3.Key
                                                  )
                                  x.Unregister( pair0.Key, pair1.Key, pair2.Key, pair3.Key )
                              else
                                  bAllDisposed <- false 
  