function(tailInfo){
    var z = this;
    if(tailInfo) {
      z.q.push(tailInfo);
    }

    var ti; 
    //for all changed fds fire readStream
    for(var i = 0;i < z.q.length;++i) {
      ti = z.q[i];

      if(ti.reading) {
        //still reading file
        continue;
      }

      if (!z.tails[ti.stat.ino]) {
        //remove timed out file tail from q
        z.q.splice(i,1);
        --i;
        continue;
      }

      //truncated
      if(ti.stat.size < ti.pos) {
        ti.pos = 0;
      }

      var len = ti.stat.size-ti.pos;
      //remove from queue because im doing this work.
      z.q.splice(i,1);
      --i;

      z.readTail(ti,len);
    }
  }
function(tailInfo){
    var z = this;
    if(tailInfo) {
      z.q.push(tailInfo);
    }

    var ti; 
    
    for(var i = 0;i < z.q.length;++i) {
      ti = z.q[i];

      if(ti.reading) {
        
        continue;
      }

      if (!z.tails[ti.stat.ino]) {
        
        z.q.splice(i,1);
        --i;
        continue;
      }

      
      if(ti.stat.size < ti.pos) {
        ti.pos = 0;
      }

      var len = ti.stat.size-ti.pos;
      
      z.q.splice(i,1);
      --i;

      z.readTail(ti,len);
    }
  }
function ( tailInfo ) { var z = this ; if ( tailInfo ) { z . q . push ( tailInfo ) ; } var ti ; //for all changed fds fire readStream for ( var i = 0 ; i < z . q . length ; ++ i ) { ti = z . q [ i ] ; if ( ti . reading ) { //still reading file continue ; } if ( ! z . tails [ ti . stat . ino ] ) { //remove timed out file tail from q z . q . splice ( i , 1 ) ; -- i ; continue ; } //truncated if ( ti . stat . size < ti . pos ) { ti . pos = 0 ; } var len = ti . stat . size - ti . pos ; //remove from queue because im doing this work. z . q . splice ( i , 1 ) ; -- i ; z . readTail ( ti , len ) ; } }
this emits the data events on the watcher emitter for all fds
this emits the data events on the watcher emitter for all fds