<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/node.git/test/simple/test-stream2-writable.js, branch node-review</title>
<subtitle>github.com: joyent/node.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/'/>
<entry>
<title>stream: don't try to finish if buffer is not empty</title>
<updated>2014-05-06T13:50:25+00:00</updated>
<author>
<name>Vladimir Kurchatkin</name>
<email>vladimir.kurchatkin@gmail.com</email>
</author>
<published>2014-05-06T10:19:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=82fca9136deadc9ab176bb07145857efff7373e3'/>
<id>82fca9136deadc9ab176bb07145857efff7373e3</id>
<content type='text'>
fixes #5715
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fixes #5715
</pre>
</div>
</content>
</entry>
<entry>
<title>stream: Guarantee ordering of 'finish' event</title>
<updated>2013-05-09T16:35:32+00:00</updated>
<author>
<name>isaacs</name>
<email>i@izs.me</email>
</author>
<published>2013-05-08T19:54:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=c38ce9bc0a143141abfa638289b458ddaaac26d6'/>
<id>c38ce9bc0a143141abfa638289b458ddaaac26d6</id>
<content type='text'>
In synchronous Writable streams (where the _write cb is called on the
current tick), the 'finish' event (and thus the end() callback) can in
some cases be called before all the write() callbacks are called.

Use a counter, and have stream.Transform rely on the 'prefinish' event
instead of the 'finish' event.

This has zero effect on most streams, but it corrects an edge case and
makes it perform more deterministically, which is a Good Thing.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In synchronous Writable streams (where the _write cb is called on the
current tick), the 'finish' event (and thus the end() callback) can in
some cases be called before all the write() callbacks are called.

Use a counter, and have stream.Transform rely on the 'prefinish' event
instead of the 'finish' event.

This has zero effect on most streams, but it corrects an edge case and
makes it perform more deterministically, which is a Good Thing.
</pre>
</div>
</content>
</entry>
<entry>
<title>stream: call write cb before finish event</title>
<updated>2013-04-08T22:09:51+00:00</updated>
<author>
<name>isaacs</name>
<email>i@izs.me</email>
</author>
<published>2013-04-08T18:00:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=c93af860a079654becb3b1d06184ab7428dedffb'/>
<id>c93af860a079654becb3b1d06184ab7428dedffb</id>
<content type='text'>
Since 049903e, an end callback could be called before a write
callback if end() is called before the write is done. This patch
resolves the issue.

In collaboration with @gne

Fixes felixge/node-formidable#209
Fixes #5215
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since 049903e, an end callback could be called before a write
callback if end() is called before the write is done. This patch
resolves the issue.

In collaboration with @gne

Fixes felixge/node-formidable#209
Fixes #5215
</pre>
</div>
</content>
</entry>
<entry>
<title>stream: Fix early end in Writables on zero-length writes</title>
<updated>2013-03-24T21:23:21+00:00</updated>
<author>
<name>isaacs</name>
<email>i@izs.me</email>
</author>
<published>2013-03-22T01:18:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=c0d500102a0a11e9d07ed9f0396aae81011e58da'/>
<id>c0d500102a0a11e9d07ed9f0396aae81011e58da</id>
<content type='text'>
Doing this causes problems:

    z.write(Buffer(0));
    z.end();

Fix by not ending Writable streams while they're still in the process of
writing something.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Doing this causes problems:

    z.write(Buffer(0));
    z.end();

Fix by not ending Writable streams while they're still in the process of
writing something.
</pre>
</div>
</content>
</entry>
<entry>
<title>stream: _write takes an encoding argument</title>
<updated>2013-03-05T22:27:15+00:00</updated>
<author>
<name>isaacs</name>
<email>i@izs.me</email>
</author>
<published>2013-03-04T03:14:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=426b4c625802c7b6913fa09237aa9745bf3ae84a'/>
<id>426b4c625802c7b6913fa09237aa9745bf3ae84a</id>
<content type='text'>
This vastly reduces the overhead of decodeStrings:false streams,
such as net and http.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This vastly reduces the overhead of decodeStrings:false streams,
such as net and http.
</pre>
</div>
</content>
</entry>
<entry>
<title>stream: Writable.end(chunk) after end is an error</title>
<updated>2013-03-04T01:26:38+00:00</updated>
<author>
<name>isaacs</name>
<email>i@izs.me</email>
</author>
<published>2013-03-02T20:25:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=384f1be739b747f6589169443ce687b44d434e09'/>
<id>384f1be739b747f6589169443ce687b44d434e09</id>
<content type='text'>
Calling end(data) calls write(data).  Doing this after end should
raise a 'write after end' error.

However, because end() calls were previously ignored on already
ended streams, this error was confusingly suppressed, even though the
data never is written, and cannot get to the other side.

This is a re-hash of 5222d19a11ed0e29d207da0e8c9c8e0e3b18ad78, but
without assuming that the data passed to end() is valid, and thus
breaking a bunch of tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Calling end(data) calls write(data).  Doing this after end should
raise a 'write after end' error.

However, because end() calls were previously ignored on already
ended streams, this error was confusingly suppressed, even though the
data never is written, and cannot get to the other side.

This is a re-hash of 5222d19a11ed0e29d207da0e8c9c8e0e3b18ad78, but
without assuming that the data passed to end() is valid, and thus
breaking a bunch of tests.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "stream: Writable.end(chunk) after end is an error"</title>
<updated>2013-03-03T01:21:28+00:00</updated>
<author>
<name>Ben Noordhuis</name>
<email>info@bnoordhuis.nl</email>
</author>
<published>2013-03-03T01:21:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=80ea63b95810e60fcdeaf3db67fec60c27b49832'/>
<id>80ea63b95810e60fcdeaf3db67fec60c27b49832</id>
<content type='text'>
It's breaking ~22 tests, Needs further investigation.

This reverts commit 5222d19a11ed0e29d207da0e8c9c8e0e3b18ad78.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It's breaking ~22 tests, Needs further investigation.

This reverts commit 5222d19a11ed0e29d207da0e8c9c8e0e3b18ad78.
</pre>
</div>
</content>
</entry>
<entry>
<title>stream: Writable.end(chunk) after end is an error</title>
<updated>2013-03-03T00:09:16+00:00</updated>
<author>
<name>isaacs</name>
<email>i@izs.me</email>
</author>
<published>2013-03-02T20:25:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=5222d19a11ed0e29d207da0e8c9c8e0e3b18ad78'/>
<id>5222d19a11ed0e29d207da0e8c9c8e0e3b18ad78</id>
<content type='text'>
Calling end(data) calls write(data).  Doing this after end should
raise a 'write after end' error.

However, because end() calls were previously ignored on already
ended streams, this error was confusingly suppressed, even though the
data never is written, and cannot get to the other side.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Calling end(data) calls write(data).  Doing this after end should
raise a 'write after end' error.

However, because end() calls were previously ignored on already
ended streams, this error was confusingly suppressed, even though the
data never is written, and cannot get to the other side.
</pre>
</div>
</content>
</entry>
<entry>
<title>stream: Writables are not pipe()able</title>
<updated>2013-02-27T02:54:05+00:00</updated>
<author>
<name>isaacs</name>
<email>i@izs.me</email>
</author>
<published>2013-02-25T06:14:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=86433979c6f33f78035011b3a4aa29c26b1e9c67'/>
<id>86433979c6f33f78035011b3a4aa29c26b1e9c67</id>
<content type='text'>
This handles the fact that stream.Writable inherits from the Stream class,
meaning that it has the legacy pipe() method.  Override that with a pipe()
method that emits an error.

Ensure that Duplex streams ARE still pipe()able, however.

Since the 'readable' flag on streams is sometimes temporary, it's probably
better not to put too much weight on that.  But if something is an instanceof
Writable, rather than of Readable or Duplex, then it's safe to say that
reading from it is the wrong thing to do.

Fix #3647
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This handles the fact that stream.Writable inherits from the Stream class,
meaning that it has the legacy pipe() method.  Override that with a pipe()
method that emits an error.

Ensure that Duplex streams ARE still pipe()able, however.

Since the 'readable' flag on streams is sometimes temporary, it's probably
better not to put too much weight on that.  But if something is an instanceof
Writable, rather than of Readable or Duplex, then it's safe to say that
reading from it is the wrong thing to do.

Fix #3647
</pre>
</div>
</content>
</entry>
<entry>
<title>stream: remove lowWaterMark feature</title>
<updated>2013-02-21T23:23:18+00:00</updated>
<author>
<name>isaacs</name>
<email>i@izs.me</email>
</author>
<published>2013-02-21T18:51:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=3b2e9d26480da0c73a3735314bee5910cb3844ab'/>
<id>3b2e9d26480da0c73a3735314bee5910cb3844ab</id>
<content type='text'>
It seems like a good idea on the face of it, but lowWaterMarks are
actually not useful, and in practice should always be set to zero.

It would be worthwhile for writers if we actually did some kind of
writev() type of thing, but actually this just delays calling write()
and the overhead of doing a bunch of Buffer copies is not worth the
slight benefit of calling write() fewer times.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It seems like a good idea on the face of it, but lowWaterMarks are
actually not useful, and in practice should always be set to zero.

It would be worthwhile for writers if we actually did some kind of
writev() type of thing, but actually this just delays calling write()
and the overhead of doing a bunch of Buffer copies is not worth the
slight benefit of calling write() fewer times.
</pre>
</div>
</content>
</entry>
</feed>
