Example #1
0
 [BUFFERSHIFT] () {
   if (this.buffer.length) {
     if (this[OBJECTMODE])
       this[BUFFERLENGTH] -= 1
     else
       this[BUFFERLENGTH] -= this.buffer.head.value.length
   }
   return this.buffer.shift()
 }
Example #2
0
  [NEXTENTRY] () {
    do {} while (this[PROCESSENTRY](this[QUEUE].shift()))

    if (!this[QUEUE].length) {
      // At this point, there's nothing in the queue, but we may have an
      // entry which is being consumed (readEntry).
      // If we don't, then we definitely can handle more data.
      // If we do, and either it's flowing, or it has never had any data
      // written to it, then it needs more.
      // The only other possibility is that it has returned false from a
      // write() call, so we wait for the next drain to continue.
      const re = this[READENTRY]
      const drainNow = !re || re.flowing || re.size === re.remain
      if (drainNow) {
        if (!this[WRITING])
          this.emit('drain')
      } else
        re.once('drain', _ => this.emit('drain'))
     }
  }
Example #3
0
 [JOBDONE] (job) {
   this[QUEUE].shift()
   this[JOBS] -= 1
   this[PROCESS]()
 }