   # zero, it is rescheduled.
   _progress: (keys) ->
     for key in keys
-      @_unmet--
       unless --@_count[key]
         @_reschedule key
 

      when 'done' then return
      when undefined then @_reqs.push key
    (@deps[key] ?= []).push source
    @_unmet++
    @_count[source]++
  
  # Take the unmet dependencies from the latest request and push

    @_count = {}
    @_state = {}
    @_cycles = {}

  # Subscribe to the `requests` and `responses` channels.
  listen: ->
