From 0221eb2bb78c87564d9d79cbffbba5ba398a73ae Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Fri, 28 May 2021 12:10:33 -0500 Subject: [PATCH] Fix: remove tracked download resources to avoid erroneous double-releases --- lib/sessions/hypercore.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/sessions/hypercore.js b/lib/sessions/hypercore.js index 751de3c..98acced 100644 --- a/lib/sessions/hypercore.js +++ b/lib/sessions/hypercore.js @@ -103,11 +103,15 @@ module.exports = class HypercoreSession { const opts = { start, end: live ? -1 : end, blocks: blocks.length ? blocks : null, linear } return new Promise((resolve, reject) => { let downloaded = false + let downloadSet const d = core.download(opts, (err) => { downloaded = true if (this._sessionState.hasResource(resourceId)) { this._sessionState.deleteResource(resourceId) } + if (downloadSet) { + downloadSet.delete(resourceId) + } if (err) return reject(err) return resolve() }) @@ -115,7 +119,7 @@ module.exports = class HypercoreSession { this._sessionState.addResource(resourceId, d, () => { core.undownload(d) }) - let downloadSet = this._downloads.get(id) + downloadSet = this._downloads.get(id) if (!downloadSet) { downloadSet = new Set() this._downloads.set(id, downloadSet)