       currentRecords
 
   updateDesignateRecords = do () ->
+    deferred = null
     fn = () ->
       designate.list()
         .then sitrep("pre-update")

          designate.list()
        .then sitrep("post-update")
    queuedFn = () ->
      executing = null
      semaphoredFn = () ->
        Q.try(() -> executing = fn()).then(() -> executing = null)
      if executing
        executing.then semaphoredFn
      else
        executing = semaphoredFn()
    _.throttle(queuedFn, 1000, leading: false)

  resolveAndUpdateMonitors = () ->
    resolveAll(servers)

            else
              Q.all recordsWithoutMonitors.map (r) ->
                monitor = Monitor(r.addr, tcpPort)
                enterFn = () ->
                  cli.info(r.addr+" is "+monitor.current)
                  updateDesignateRecords()
                monitor.onenterup = enterFn
                monitor.onenterdown = enterFn
                monitors.push(_.extend(r, { monitor: monitor }))
                monitor.start()
                null
