Skip to content

Commit 9967dc3

Browse files
committed
Safely release the reader lock
1 parent 2c6c013 commit 9967dc3

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

packages/core/src/v3/runMetadata/metadataStream.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,18 +71,19 @@ export class MetadataStream<T> {
7171
});
7272

7373
req.on("error", (error) => {
74-
reader.releaseLock();
74+
safeReleaseLock(reader);
7575
reject(error);
7676
});
7777

7878
req.on("timeout", () => {
79-
reader.releaseLock();
79+
safeReleaseLock(reader);
80+
8081
req.destroy(new Error("Request timed out"));
8182
});
8283

8384
req.on("response", (res) => {
8485
if (res.statusCode === 408) {
85-
reader.releaseLock();
86+
safeReleaseLock(reader);
8687

8788
if (this.retryCount < this.maxRetries) {
8889
this.retryCount++;
@@ -173,6 +174,12 @@ async function* streamToAsyncIterator<T>(stream: ReadableStream<T>): AsyncIterab
173174
yield value;
174175
}
175176
} finally {
176-
reader.releaseLock();
177+
safeReleaseLock(reader);
177178
}
178179
}
180+
181+
function safeReleaseLock(reader: ReadableStreamDefaultReader<any>) {
182+
try {
183+
reader.releaseLock();
184+
} catch (error) {}
185+
}

0 commit comments

Comments
 (0)