Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/webtorrent/webtorrent.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCas <6506529+ThaUnknown@users.noreply.github.com>2022-11-11 21:12:54 +0300
committerGitHub <noreply@github.com>2022-11-11 21:12:54 +0300
commit957a0a652286c6b36635325a2c8c411be0d92052 (patch)
tree06c3c1d331bad026cd5a0cf71b4aed3575b8ecaa
parent1ba3e6c4530008c1c54cd44f3e95581ba4d89b00 (diff)
parentcf4d5938084f01f3004884f26abaea65fc3cb365 (diff)
Merge pull request #2396 from ThaUnknown/chunk-store-iteratorv2
perf: drop chunk store stream
-rw-r--r--lib/torrent.js18
-rw-r--r--package.json4
-rw-r--r--test/node/torrent-events.js6
3 files changed, 14 insertions, 14 deletions
diff --git a/lib/torrent.js b/lib/torrent.js
index 60f1a20..7412158 100644
--- a/lib/torrent.js
+++ b/lib/torrent.js
@@ -8,7 +8,7 @@ import path from 'path'
import addrToIPPort from 'addr-to-ip-port'
import BitField from 'bitfield'
import CacheChunkStore from 'cache-chunk-store'
-import ChunkStoreWriteStream from 'chunk-store-stream/write.js'
+import { chunkStoreWrite } from 'chunk-store-iterator'
import cpus from 'cpus'
import debugFactory from 'debug'
import Discovery from 'torrent-discovery'
@@ -22,14 +22,12 @@ import parallel from 'run-parallel'
import parallelLimit from 'run-parallel-limit'
import parseTorrent from 'parse-torrent'
import Piece from 'torrent-piece'
-import pump from 'pump'
import queueMicrotask from 'queue-microtask'
import randomIterate from 'random-iterate'
import sha1 from 'simple-sha1'
import throughput from 'throughput'
import utMetadata from 'ut_metadata'
import utPex from 'ut_pex' // browser exclude
-import { Readable } from 'streamx'
import File from './file.js'
import Peer from './peer.js'
@@ -1830,22 +1828,22 @@ export default class Torrent extends EventEmitter {
return done
}
- load (streams, cb) {
+ async load (streams, cb) {
if (this.destroyed) throw new Error('torrent is destroyed')
if (!this.ready) return this.once('ready', () => { this.load(streams, cb) })
if (!Array.isArray(streams)) streams = [streams]
if (!cb) cb = noop
- const readable = Readable.from(joinIterator(streams))
- const writable = new ChunkStoreWriteStream(this.store, this.pieceLength)
-
- pump(readable, writable, err => {
- if (err) return cb(err)
+ try {
+ await chunkStoreWrite(this.store, joinIterator(streams), { chunkLength: this.pieceLength })
this._markAllVerified()
this._checkDone()
cb(null)
- })
+ } catch (err) {
+ cb(err)
+ return err
+ }
}
pause () {
diff --git a/package.json b/package.json
index 0035def..2b44d51 100644
--- a/package.json
+++ b/package.json
@@ -40,10 +40,10 @@
"addr-to-ip-port": "^1.5.4",
"bitfield": "^4.1.0",
"bittorrent-dht": "^10.0.6",
- "bittorrent-protocol": "^3.5.5",
+ "bittorrent-protocol": "^4.0.1",
"cache-chunk-store": "^3.2.2",
"chrome-net": "^3.3.4",
- "chunk-store-stream": "^4.3.0",
+ "chunk-store-iterator": "^1.0.2",
"cpus": "^1.0.3",
"create-torrent": "^5.0.6",
"debug": "^4.3.4",
diff --git a/test/node/torrent-events.js b/test/node/torrent-events.js
index bb2de83..32adb1f 100644
--- a/test/node/torrent-events.js
+++ b/test/node/torrent-events.js
@@ -53,7 +53,7 @@ test('client.add: emit torrent events in order', t => {
})
test('client.seed: emit torrent events in order', t => {
- t.plan(5)
+ t.plan(6)
const client = new WebTorrent({ dht: false, tracker: false, lsd: false })
@@ -78,7 +78,9 @@ test('client.seed: emit torrent events in order', t => {
torrent.on('done', () => {
t.equal(++order, 4)
-
+ })
+ torrent.on('seed', () => {
+ t.equal(++order, 5)
client.destroy(err => { t.error(err, 'client destroyed') })
})
})