var co = require('co'),
    fs = require('fs'),
    Reader = require('../').Reader,
    LineReader = require('../').LineReader;

function sleep(mill) {
    return function (cb) { setTimeout(cb, mill); };
}

co(function *() {
    var input = fs.createReadStream('test.log'),
        reader = new Reader(input),
        txt;

    while (txt = yield reader.read('utf8')) {
        console.log(txt);
        //yield sleep(100);
    }

    console.log('done');
})(function (err) {
    if (err) console.log(err);
});

co(function *() {
    var input = fs.createReadStream('test.log'),
        reader = new LineReader(input),
        txt;

    while (typeof (txt = yield reader.read('utf8')) === 'string') {
        console.log('line: ' + txt);
        yield sleep(1);
    }

    console.log('done');
})(function (err) {
    if (err) console.log(err);
});

@@ -295,32 +295,60 @@
  Reader(input),%0A
+        start = Date.now(),%0A
         txt;%0A%0A  
@@ -391,32 +391,34 @@
 f8')) %7B%0A        
+//
 console.log(txt)
@@ -467,33 +467,61 @@
 onsole.log('done
-'
+. %25d ms.', Date.now() - start
 );%0A%7D)(function (
@@ -670,37 +670,100 @@
 input),%0A        
-txt;%0A
+start = Date.now(),%0A        cnt = 0,%0A        txt;%0A%0A    var last = 0;
 %0A    while (type
@@ -790,22 +790,16 @@
 er.read(
-'utf8'
 )) === '
@@ -813,24 +813,41 @@
 ) %7B%0A        
+cnt++;%0A        //
 console.log(
@@ -871,16 +871,18 @@
         
+//
 yield sl
@@ -885,17 +885,17 @@
 d sleep(
-1
+0
 );%0A    %7D
@@ -917,17 +917,60 @@
 og('done
-'
+. %25d lines, %25d ms.', cnt, Date.now() - start
 );%0A%7D)(fu

update example.