Invoke input.close()
. It's not in the docs, but
https://github.com/joyent/node/blob/cfcb1de130867197cbc9c6012b7e84e08e53d032/lib/fs.js#L1597-L1620
clearly does the job :) It actually does something similar to your isEnded
.
EDIT 2015-Apr-19 Based on comments below, and to clarify and update:
- This suggestion is a hack, and is not documented.
- Though for looking at the current
lib/fs.js
it still works >1.5yrs later. - I agree with the comment below about calling
destroy()
being preferable. - As correctly stated below this works for
fs
ReadStreams
's, not on a genericReadable
As for a generic solution: it doesn't appear as if there is one, at least from my understanding of the documentation and from a quick look at _stream_readable.js
.
My proposal would be put your readable stream in paused mode, at least preventing further processing in your upstream data source. Don't forget to unpipe()
and remove all data
event listeners so that pause()
actually pauses, as mentioned in the docs