     @params = {}
     { @verbose, @flush } = opts
     @as = {}
+    @done = {}
     @listeners = {}
     @triggers = {}
     @task_intervals = []

      if worker.waiting_for
        log.push ['  [waiting] ', key, "\n"]
        for dep in worker.waiting_for
          code = if @_done[dep] then 'D' else if @workers[dep] then 'A' else 'M'
          log.push ['    ', code, ' ', dep, "\n"]
      else
        log.push ['  [running] ', key, "\n"]

    # resume that key. It will then grab its dependency values from
    # the database and resume work.
    ready: (key, dirty) ->
      @done[key] = true unless dirty
      return unless keys = @listeners[key]
      delete @listeners[key]
      for key in keys
