Files
node/test/parallel
James M Snell 17e7b68996 stream: do not miss 'drain' in fromWritable()
When a write filled the classic Writable, fromWritable() recorded that
it needed to drain, but only listened for 'drain' once a later write
was queued or something waited for drain. If the Writable emitted
'drain' before that, for example because its write callback ran on a
microtask or with process.nextTick(), the event was missed and the flag
was never cleared: the next write() or writev() never settled, canWrite
stayed false and ondrain() never resolved.

Listen for 'drain' as soon as a write returns false, and keep listening
until it is emitted.

Assisted-by: OpenCode
Signed-off-by: James M Snell <jasnell@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/66648
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day>
2026-10-15 13:26:50 +00:00
..
2026-09-28 04:22:37 +00:00
2026-10-15 00:52:34 +00:00
2026-10-15 00:52:34 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00
2026-10-15 07:53:03 +00:00