Adds "pause" and "resume" events to pump and it's readable argument.

This commit is contained in:
Mikeal Rogers 2010-07-13 17:17:05 -07:00 committed by Ryan Dahl
parent 2085909aeb
commit 16cb45103f

View File

@ -284,14 +284,25 @@ exports.exec = function () {
exports.pump = function (readStream, writeStream, callback) {
if (!readStream.pause) readStream.pause = function () {readStream.emit("pause")};
if (!readStream.resume) readStream.resume = function () {readStream.emit("resume")};
readStream.addListener("data", function (chunk) {
if (writeStream.write(chunk) === false) readStream.pause();
});
writeStream.addListener("pause", function () {
readStream.pause();
});
writeStream.addListener("drain", function () {
readStream.resume();
});
writeStream.addListener("resume", function () {
readStream.resume();
});
readStream.addListener("end", function () {
writeStream.end();
});