Merge pull request #12004 from Snuffleupagus/worker-class
Convert the code in `src/core/worker.js` to use ES6 classes
This commit is contained in:
commit
3067917582
@ -37,39 +37,34 @@ import { MessageHandler } from "../shared/message_handler.js";
|
|||||||
import { PDFWorkerStream } from "./worker_stream.js";
|
import { PDFWorkerStream } from "./worker_stream.js";
|
||||||
import { XRefParseException } from "./core_utils.js";
|
import { XRefParseException } from "./core_utils.js";
|
||||||
|
|
||||||
var WorkerTask = (function WorkerTaskClosure() {
|
class WorkerTask {
|
||||||
// eslint-disable-next-line no-shadow
|
constructor(name) {
|
||||||
function WorkerTask(name) {
|
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.terminated = false;
|
this.terminated = false;
|
||||||
this._capability = createPromiseCapability();
|
this._capability = createPromiseCapability();
|
||||||
}
|
}
|
||||||
|
|
||||||
WorkerTask.prototype = {
|
|
||||||
get finished() {
|
get finished() {
|
||||||
return this._capability.promise;
|
return this._capability.promise;
|
||||||
},
|
}
|
||||||
|
|
||||||
finish() {
|
finish() {
|
||||||
this._capability.resolve();
|
this._capability.resolve();
|
||||||
},
|
}
|
||||||
|
|
||||||
terminate() {
|
terminate() {
|
||||||
this.terminated = true;
|
this.terminated = true;
|
||||||
},
|
}
|
||||||
|
|
||||||
ensureNotTerminated() {
|
ensureNotTerminated() {
|
||||||
if (this.terminated) {
|
if (this.terminated) {
|
||||||
throw new Error("Worker task was terminated");
|
throw new Error("Worker task was terminated");
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
return WorkerTask;
|
class WorkerMessageHandler {
|
||||||
})();
|
static setup(handler, port) {
|
||||||
|
|
||||||
var WorkerMessageHandler = {
|
|
||||||
setup(handler, port) {
|
|
||||||
var testMessageProcessed = false;
|
var testMessageProcessed = false;
|
||||||
handler.on("test", function wphSetupTest(data) {
|
handler.on("test", function wphSetupTest(data) {
|
||||||
if (testMessageProcessed) {
|
if (testMessageProcessed) {
|
||||||
@ -96,8 +91,9 @@ var WorkerMessageHandler = {
|
|||||||
handler.on("GetDocRequest", function wphSetupDoc(data) {
|
handler.on("GetDocRequest", function wphSetupDoc(data) {
|
||||||
return WorkerMessageHandler.createDocumentHandler(data, port);
|
return WorkerMessageHandler.createDocumentHandler(data, port);
|
||||||
});
|
});
|
||||||
},
|
}
|
||||||
createDocumentHandler(docParams, port) {
|
|
||||||
|
static createDocumentHandler(docParams, port) {
|
||||||
// This context is actually holds references on pdfManager and handler,
|
// This context is actually holds references on pdfManager and handler,
|
||||||
// until the latter is destroyed.
|
// until the latter is destroyed.
|
||||||
var pdfManager;
|
var pdfManager;
|
||||||
@ -662,13 +658,14 @@ var WorkerMessageHandler = {
|
|||||||
docParams = null; // we don't need docParams anymore -- saving memory.
|
docParams = null; // we don't need docParams anymore -- saving memory.
|
||||||
});
|
});
|
||||||
return workerHandlerName;
|
return workerHandlerName;
|
||||||
},
|
}
|
||||||
initializeFromPort(port) {
|
|
||||||
|
static initializeFromPort(port) {
|
||||||
var handler = new MessageHandler("worker", "main", port);
|
var handler = new MessageHandler("worker", "main", port);
|
||||||
WorkerMessageHandler.setup(handler, port);
|
WorkerMessageHandler.setup(handler, port);
|
||||||
handler.send("ready", null);
|
handler.send("ready", null);
|
||||||
},
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
function isMessagePort(maybePort) {
|
function isMessagePort(maybePort) {
|
||||||
return (
|
return (
|
||||||
|
Loading…
Reference in New Issue
Block a user