UNPKG

@zoranwong/acc-engine.js

Version:

A javascript framework to accelerate your applicatin developement

124 lines (97 loc) 3.74 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _classPrivateFieldLooseBase2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldLooseBase")); var _classPrivateFieldLooseKey2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldLooseKey")); var _PoolInterface = _interopRequireDefault(require("./PoolInterface")); var _threadId = (0, _classPrivateFieldLooseKey2["default"])("threadId"); var _name = (0, _classPrivateFieldLooseKey2["default"])("name"); var _pool = (0, _classPrivateFieldLooseKey2["default"])("pool"); var Thread = /*#__PURE__*/function () { /**@property {PoolInterface} #pool*/ function Thread(name, pool) { (0, _classCallCheck2["default"])(this, Thread); Object.defineProperty(this, _threadId, { writable: true, value: null }); Object.defineProperty(this, _name, { writable: true, value: null }); Object.defineProperty(this, _pool, { writable: true, value: null }); (0, _classPrivateFieldLooseBase2["default"])(this, _name)[_name] = name; (0, _classPrivateFieldLooseBase2["default"])(this, _pool)[_pool] = pool; (0, _classPrivateFieldLooseBase2["default"])(this, _threadId)[_threadId] = new Date().getTime(); } (0, _createClass2["default"])(Thread, [{ key: "run", value: function () { var _run = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(method) { var worker, result, _len, params, _key, _args = arguments; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return this.pool.proxy(); case 2: worker = _context.sent; result = null; if (!(typeof method === 'function')) { _context.next = 11; break; } for (_len = _args.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { params[_key - 1] = _args[_key]; } _context.next = 8; return worker.run(String(method), params); case 8: result = _context.sent; _context.next = 14; break; case 11: _context.next = 13; return worker.worker(); case 13: result = _context.sent; case 14: this.pool.terminate(); return _context.abrupt("return", result); case 16: case "end": return _context.stop(); } } }, _callee, this); })); function run(_x) { return _run.apply(this, arguments); } return run; }() }, { key: "pool", get: function get() { return (0, _classPrivateFieldLooseBase2["default"])(this, _pool)[_pool]; } }]); return Thread; }(); exports["default"] = Thread;