| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1532,10 +1532,12 @@ function readableStreamPipeTo( | |||
| 1532 | 1532 | } | |
| 1533 | 1533 | ||
| 1534 | 1534 | async function step() { | |
| 1535 | - if (shuttingDown) | ||
| 1536 | - return true; | ||
| 1535 | + if (shuttingDown) return true; | ||
| 1537 | 1536 | ||
| 1538 | - await writer[kState].ready.promise; | ||
| 1537 | + if (dest[kState].backpressure) { | ||
| 1538 | + await writer[kState].ready.promise; | ||
| 1539 | + if (shuttingDown) return true; | ||
| 1540 | + } | ||
| 1539 | 1541 | ||
| 1540 | 1542 | const controller = source[kState].controller; | |
| 1541 | 1543 | ||
@@ -1549,7 +1551,6 @@ function readableStreamPipeTo( | |||
| 1549 | 1551 | while (controller[kState].queue.length > 0) { | |
| 1550 | 1552 | if (shuttingDown) return true; | |
| 1551 | 1553 | ||
| 1552 | - source[kState].disturbed = true; | ||
| 1553 | 1554 | const chunk = dequeueValue(controller); | |
| 1554 | 1555 | ||
| 1555 | 1556 | if (controller[kState].closeRequested && !controller[kState].queue.length) { | |
@@ -1563,20 +1564,17 @@ function readableStreamPipeTo( | |||
| 1563 | 1564 | setPromiseHandled(state.currentWrite); | |
| 1564 | 1565 | ||
| 1565 | 1566 | // Check backpressure after each write | |
| 1566 | - if (dest[kState].state === 'writable') { | ||
| 1567 | - const desiredSize = writer.desiredSize; | ||
| 1568 | - if (desiredSize !== null && desiredSize <= 0) { | ||
| 1569 | - // Backpressure - stop batch and wait for ready | ||
| 1570 | - break; | ||
| 1571 | - } | ||
| 1567 | + if (dest[kState].backpressure) { | ||
| 1568 | + // Backpressure - stop batch and wait for ready | ||
| 1569 | + break; | ||
| 1570 | + } else if (dest[kState].state !== 'writable' || writableStreamCloseQueuedOrInFlight(dest)) { | ||
| 1571 | + // Closing or erroring - stop batch and wait for shutdown | ||
| 1572 | + break; | ||
| 1572 | 1573 | } | |
| 1573 | 1574 | } | |
| 1574 | 1575 | ||
| 1575 | 1576 | // Trigger pull if needed after batch | |
| 1576 | - if (source[kState].state === 'readable' && | ||
| 1577 | - !controller[kState].closeRequested) { | ||
| 1578 | - readableStreamDefaultControllerCallPullIfNeeded(controller); | ||
| 1579 | - } | ||
| 1577 | + readableStreamDefaultControllerCallPullIfNeeded(controller); | ||
| 1580 | 1578 | ||
| 1581 | 1579 | // Check if stream closed during batch | |
| 1582 | 1580 | if (source[kState].state === 'closed') { | |
| Back | FazBrowse Home | New Git URL |
0 commit comments