@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
104 lines • 2.5 kB
TypeScript
export default ConcurrentExecutor;
/**
* @class
*/
declare class ConcurrentExecutor {
/**
*
* @param {number} [quietTime] in milliseconds
* @param {number} [workTime] in milliseconds
* @constructor
*/
constructor(quietTime?: number, workTime?: number);
/**
*
* @type {number}
*/
quietTime: number;
/**
*
* @type {number}
*/
workTime: number;
/**
* Tasks in state pending resolution or initial sate are put here
* @type {Task[]}
*/
queueUnresolved: Task[];
/**
* ready tasks are those who's dependencies have all been completed
* @type {Task[]}
*/
queueReady: Task[];
on: {
task_started: Signal<any, any, any, any, any, any, any, any>;
task_completed: Signal<any, any, any, any, any, any, any, any>;
completed: Signal<any, any, any, any, any, any, any, any>;
};
busy: boolean;
/**
*
* @type {number|SchedulingPolicy}
*/
policy: number | SchedulingPolicy;
/**
*
* @param {TaskGroup} taskGroup
*/
runGroup(taskGroup: TaskGroup): void;
/**
*
* @param {TaskGroup} group
*/
removeGroup(group: TaskGroup): void;
/**
*
* @param {Task} task
* @return {boolean}
*/
removeTask(task: Task): boolean;
/**
*
* @param {Task} task
*/
run(task: Task): void;
/**
* Shortcut for {@link #run} method for scheduling multiple tasks at once
* @param {Task[]} tasks
*/
runMany(tasks: Task[]): void;
/**
* @private
* @param {Task} task
* @returns {boolean}
*/
private startTask;
/**
* Go through unresolved queue and move tasks whose dependencies have been completed to ready queue or fail them
*/
resolveTasks(): void;
/**
*
* @param {Task} task
* @returns {boolean}
*/
contains(task: Task): boolean;
/**
* kicks the scheduler into action, this is an internal method and should not be called from outside
* @private
*/
private prod;
join(callback: any): void;
#private;
}
declare namespace ConcurrentExecutor {
export { SchedulingPolicy as POLICY };
}
import Signal from "../../events/signal/Signal.js";
type SchedulingPolicy = number;
declare namespace SchedulingPolicy {
let ROUND_ROBIN: number;
let SEQUENTIAL: number;
let TIME_SLICE: number;
}
//# sourceMappingURL=ConcurrentExecutor.d.ts.map