     throw new Error("Finished more tasks than started") if @tasks? and @tasks < 1
     @tasks -= 1
     elapsed = @check()
+    @done ?= 0
+    @done += 1
     if @tasks == 0
-      @started = undefined
+      console.log "All #{@done} tasks finished. #{elapsed}/#{@timeout ? 'Inf'}ms"
+      @started = @done = undefined
 
   doTask: (block) =>
     do @start

    node.back     = @options.timer.doTask => @back?.clone()


  constructor: (polygons, @options={}) ->
    if polygons? and not (polygons instanceof Array)
      @options = polygons


  check: =>
    return unless @started?
    returning (elapsed = (Date.now() - @started)), =>
      if elapsed >= @timeout ? Infinity
        throw new Error("Timeout reached: #{elapsed}/#{@timeout}")

  start: =>
