diff options
| author | Marcos Casagrande <marcoscvp90@gmail.com> | 2022-10-02 01:21:48 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-02 01:21:48 +0200 |
| commit | a55b194638bcaace38917703b7d9233fb1989d44 (patch) | |
| tree | 2b92cb3d22fa64c5cb796408b4ef5e4a3f1f528a /ext/cache | |
| parent | 048c06f84fe78742d6d9e64caa2aadcd212802a5 (diff) | |
fix(ext/cache): acquire reader lock before async op (#16126)
Diffstat (limited to 'ext/cache')
| -rw-r--r-- | ext/cache/01_cache.js | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/ext/cache/01_cache.js b/ext/cache/01_cache.js index b08de3675..c2843cedb 100644 --- a/ext/cache/01_cache.js +++ b/ext/cache/01_cache.js @@ -119,8 +119,10 @@ // Step 8. if (innerResponse.body !== null && innerResponse.body.unusable()) { - throw new TypeError("Response body must not already used"); + throw new TypeError("Response body is already used"); } + // acquire lock before async op + const reader = innerResponse.body?.stream.getReader(); // Remove fragment from request URL before put. reqUrl.hash = ""; @@ -138,8 +140,7 @@ responseStatusText: innerResponse.statusMessage, }, ); - if (innerResponse.body) { - const reader = innerResponse.body.stream.getReader(); + if (reader) { while (true) { const { value, done } = await reader.read(); if (done) { |
