Skip to content

Instantly share code, notes, and snippets.

@josher19
Created April 20, 2012 09:39
Show Gist options
  • Save josher19/2427360 to your computer and use it in GitHub Desktop.
Save josher19/2427360 to your computer and use it in GitHub Desktop.
Example run of a LimitedQueue
LimitedQ = require './LimitedQueue'
assert = require 'assert'
lq = new LimitedQ(3)
lq2 = new LimitedQ()
lq.addListener "alldone", ->
console.log "alldone", arguments
lq.addListener "done", ->
console.log "done", arguments
lq.addListener "start", ->
console.log "start", arguments
delayedAdd = ->
# lq.n = 1
lq.add delayed 20, 500
setTimeout delayedAdd, 2500
delayed = (n, ms) ->
return (err, succ) ->
delay = ms * ( if Math.random() < 0.5 then 0 else 1 )
console.log n, err, succ, do Date.now, delay
setTimeout err or succ, delay if typeof (err or succ) is "function"
n * ms
go = []
for n in [0..10]
go[n] = delayed n, 1000
lq.add go[n]
console.log "lq=", lq
console.log "lq2=", lq2
console.log "len=", lq.len(), "len2=", lq2.len()
assert lq2.len() == 0, "New LimitQueue length: expected", 0, "got", lq2.len()
assert lq.len() == 11, "LimitQueue length: expected", 11, "got", lq.len()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment