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:
-rw-r--r--index.js5
-rw-r--r--lib/conn-pool.js5
-rw-r--r--lib/file.js3
-rw-r--r--lib/server.js3
-rw-r--r--lib/torrent.js11
-rw-r--r--package.json1
6 files changed, 17 insertions, 11 deletions
diff --git a/index.js b/index.js
index 9df53e1..13d62eb 100644
--- a/index.js
+++ b/index.js
@@ -13,6 +13,7 @@ const path = require('path')
const Peer = require('simple-peer')
const randombytes = require('randombytes')
const speedometer = require('speedometer')
+const queueMicrotask = require('queue-microtask')
const ConnPool = require('./lib/conn-pool') // browser exclude
const Torrent = require('./lib/torrent')
@@ -100,7 +101,7 @@ class WebTorrent extends EventEmitter {
if (typeof ConnPool === 'function') {
this._connPool = new ConnPool(this)
} else {
- process.nextTick(() => {
+ queueMicrotask(() => {
this._onListening()
})
}
@@ -150,7 +151,7 @@ class WebTorrent extends EventEmitter {
ready()
})
} else {
- process.nextTick(ready)
+ queueMicrotask(ready)
}
}
diff --git a/lib/conn-pool.js b/lib/conn-pool.js
index 5746ca5..80aa87f 100644
--- a/lib/conn-pool.js
+++ b/lib/conn-pool.js
@@ -2,6 +2,7 @@ const arrayRemove = require('unordered-array-remove')
const debug = require('debug')('webtorrent:conn-pool')
const net = require('net') // browser exclude
const utp = require('utp-native') // browser exclude
+const queueMicrotask = require('queue-microtask')
const Peer = require('./peer')
@@ -95,14 +96,14 @@ class ConnPool {
try {
this.utpServer.close(cb)
} catch (err) {
- if (cb) process.nextTick(cb)
+ if (cb) queueMicrotask(cb)
}
}
try {
this.tcpServer.close(cb)
} catch (err) {
- if (cb) process.nextTick(cb)
+ if (cb) queueMicrotask(cb)
}
this.tcpServer = null
diff --git a/lib/file.js b/lib/file.js
index 3e75091..d9a10e0 100644
--- a/lib/file.js
+++ b/lib/file.js
@@ -7,6 +7,7 @@ const streamToBlob = require('stream-to-blob')
const streamToBlobURL = require('stream-to-blob-url')
const streamToBuffer = require('stream-with-known-length-to-buffer')
const FileStream = require('./file-stream')
+const queueMicrotask = require('queue-microtask')
class File extends EventEmitter {
constructor (torrent, file) {
@@ -81,7 +82,7 @@ class File extends EventEmitter {
createReadStream (opts) {
if (this.length === 0) {
const empty = new PassThrough()
- process.nextTick(() => {
+ queueMicrotask(() => {
empty.end()
})
return empty
diff --git a/lib/server.js b/lib/server.js
index cc33159..85b4573 100644
--- a/lib/server.js
+++ b/lib/server.js
@@ -4,6 +4,7 @@ const http = require('http')
const mime = require('mime')
const pump = require('pump')
const rangeParser = require('range-parser')
+const queueMicrotask = require('queue-microtask')
function Server (torrent, opts = {}) {
const server = http.createServer()
@@ -40,7 +41,7 @@ function Server (torrent, opts = {}) {
// Only call `server.close` if user has not called it already
if (!cb) cb = () => {}
- if (closed) process.nextTick(cb)
+ if (closed) queueMicrotask(cb)
else server.close(cb)
torrent = null
}
diff --git a/lib/torrent.js b/lib/torrent.js
index 8787e53..201a452 100644
--- a/lib/torrent.js
+++ b/lib/torrent.js
@@ -25,6 +25,7 @@ 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 File = require('./file')
const Peer = require('./peer')
@@ -202,7 +203,7 @@ class Torrent extends EventEmitter {
// Attempt to set infoHash property synchronously
this.infoHash = parsedTorrent.infoHash
this._debugId = parsedTorrent.infoHash.toString('hex').substring(0, 7)
- process.nextTick(() => {
+ queueMicrotask(() => {
if (this.destroyed) return
this._onParsedTorrent(parsedTorrent)
})
@@ -586,7 +587,7 @@ class Torrent extends EventEmitter {
this.store.get(index, (err, buf) => {
if (this.destroyed) return cb(new Error('torrent is destroyed'))
- if (err) return process.nextTick(cb, null) // ignore error
+ if (err) return queueMicrotask(cb, null) // ignore error
sha1(buf, hash => {
if (this.destroyed) return cb(new Error('torrent is destroyed'))
@@ -1031,7 +1032,7 @@ class Torrent extends EventEmitter {
this.emit('wire', wire, addr)
if (this.metadata) {
- process.nextTick(() => {
+ queueMicrotask(() => {
// This allows wire.handshake() to be called (by Peer.onHandshake) before any
// messages get sent on the wire
this._onWireWithMetadata(wire)
@@ -1129,7 +1130,7 @@ class Torrent extends EventEmitter {
_updateSelections () {
if (!this.ready || this.destroyed) return
- process.nextTick(() => {
+ queueMicrotask(() => {
this._gcSelections()
})
this._updateInterest()
@@ -1591,7 +1592,7 @@ class Torrent extends EventEmitter {
})
function onUpdateTick () {
- process.nextTick(() => { self._update() })
+ queueMicrotask(() => { self._update() })
}
return true
diff --git a/package.json b/package.json
index 827f195..90fabd8 100644
--- a/package.json
+++ b/package.json
@@ -55,6 +55,7 @@
"package-json-versionify": "^1.0.4",
"parse-torrent": "^9.1.0",
"pump": "^3.0.0",
+ "queue-microtask": "^1.2.2",
"random-iterate": "^1.0.1",
"randombytes": "^2.1.0",
"range-parser": "^1.2.1",