code: function produce_one (shared_ctx, self_ctx, cb) {
    if (shared_ctx.push_count > shared_ctx.push_max) {
      console.log ('producer %s ended', self_ctx.id);
      return cb ();
    }
    
    shared_ctx.push_count ++;
    self_ctx.push_count ++;
  
    shared_ctx.q.push ({a: chance.integer (), b: chance.word (), n: shared_ctx.push_count}, function (err, res) {
      if (err) return console.error (err);
  //    if ((shared_ctx.push_count % 100000) == 0) console.log ('%s : produced #%d elems', self_ctx.id, shared_ctx.push_count);
      produce_one (shared_ctx, self_ctx, cb);
    });
  }
docs: //////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////