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
path: root/lib
diff options
context:
space:
mode:
authorFeross Aboukhadijeh <feross@feross.org>2021-03-18 03:37:18 +0300
committerFeross Aboukhadijeh <feross@feross.org>2021-03-18 03:37:18 +0300
commit687decc4a8cabd8f35fd5a8ef8be7ab86fa411b1 (patch)
tree29eeb1128d5b44547f5ce66ecec84312ed39f84c /lib
parente52dc7187a085b0121e132224fb7be3f9002c5ae (diff)
Change filesystem concurrency to number of cpus
Makes the EventEmitter warning show up less often, and avoids running potentially 100s or 1000s of chunkStore.get() calls concurrently in _verifyPieces
Diffstat (limited to 'lib')
-rw-r--r--lib/torrent.js9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/torrent.js b/lib/torrent.js
index 970eab4..db3bebe 100644
--- a/lib/torrent.js
+++ b/lib/torrent.js
@@ -3,6 +3,7 @@
const addrToIPPort = require('addr-to-ip-port')
const BitField = require('bitfield').default
const ChunkStoreWriteStream = require('chunk-store-stream/write')
+const cpus = require('cpus')
const debug = require('debug')('webtorrent:torrent')
const Discovery = require('torrent-discovery')
const EventEmitter = require('events').EventEmitter
@@ -19,13 +20,13 @@ const parseTorrent = require('parse-torrent')
const path = require('path')
const Piece = require('torrent-piece')
const pump = require('pump')
+const queueMicrotask = require('queue-microtask')
const randomIterate = require('random-iterate')
const sha1 = require('simple-sha1')
const speedometer = require('speedometer')
const utMetadata = require('ut_metadata')
-const utPex = require('ut_pex') // browser exclude
const utp = require('utp-native') // browser exclude
-const queueMicrotask = require('queue-microtask')
+const utPex = require('ut_pex') // browser exclude
const File = require('./file')
const Peer = require('./peer')
@@ -44,8 +45,8 @@ const PIPELINE_MAX_DURATION = 1
const RECHOKE_INTERVAL = 10000 // 10 seconds
const RECHOKE_OPTIMISTIC_DURATION = 2 // 30 seconds
-// IndexedDB chunk stores used in the browser benefit from maximum concurrency
-const FILESYSTEM_CONCURRENCY = process.browser ? Infinity : 2
+// IndexedDB chunk stores used in the browser benefit from high concurrency
+const FILESYSTEM_CONCURRENCY = process.browser ? cpus().length : 2
const RECONNECT_WAIT = [1000, 5000, 15000]