UNPKG

hjs-future

Version:

Future classes of Hubrijs framework

64 lines (52 loc) 1.78 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.QueuedWork = undefined; var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _list = require('hjs-collection/lib/list'); var _executor = require('./executor'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** @babel */ var sPendingWorkFinishers = new _list.LinkedList(); var sSingleExecutor = null; var QueuedWork = exports.QueuedWork = function () { function QueuedWork() { (0, _classCallCheck3.default)(this, QueuedWork); } (0, _createClass3.default)(QueuedWork, [{ key: 'hasPendingWork', value: function hasPendingWork() { return !sPendingWorkFinishers.isEmpty(); } }, { key: 'remove', value: function remove(finisher) { sPendingWorkFinishers.remove(finisher); } }, { key: 'singleExecutor', value: function singleExecutor() { if (sSingleExecutor === null) { sSingleExecutor = _executor.Executors.newSingleExecutor(); } return sSingleExecutor; } }, { key: 'waitToFinish', value: function waitToFinish() { for (var toFinish; (toFinish = sPendingWorkFinishers.poll()) !== null;) { toFinish.run(); } } }], [{ key: 'add', value: function add(finisher) { sPendingWorkFinishers.add(finisher); } }]); return QueuedWork; }();