tasks/boot_server_async.js
function(chunk){
            if(printOutput){
                if (chunk.indexOf(options.matchString) !== -1) {
                    child_process.stdout.removeListener('data', detachIfStarted);
                    printOutput = false;
                    done();
                }
            }
        }
function(chunk){
            if(printOutput){
                if (chunk.indexOf(options.matchString) !== -1) {
                    child_process.stdout.removeListener('data', detachIfStarted);
                    printOutput = false;
                    done();
                }
            }
        }
function ( chunk ) { if ( printOutput ) { if ( chunk . indexOf ( options . matchString ) !== - 1 ) { child_process . stdout . removeListener ( 'data' , detachIfStarted ) ; printOutput = false ; done ( ) ; } } }
detach the listener, which listens for changes in stdout, once matchString is output to terminal. otherwise, process will hang.
detach the listener which listens for changes in stdout once matchString is output to terminal . otherwise process will hang .