function WorkerPool(file, size)
{
	/**
	 * Size of this worker pool.
	 *
	 * @attribute size
	 * @type {Number}
	 */
	this.size = size;

	/**
	 * Javascript file for the workers.
	 * 
	 * @attribute file
	 * @type {String}
	 */
	this.file = file;

	/**
	 * List of worker of this pool.
	 *
	 * @attribute workers
	 * @type {Array}
	 */
	this.workers = [];

	/**
	 * Worker index to be used for the next task.
	 *
	 * @attribute next
	 * @type {Number}
	 */
	this.next = 0;
	this.createWorkers();

	/**
	 * Tasks waiting to be processed.
	 *
	 * @attribute tasks
	 * @type {Array}
	 */
	this.tasks = {};
}
Worker pool is used to manage and execute mutiple task of the same type using a predefined number of workers.

Workers are pre initialized to avoid the overhead of creation during execution.

These workers receive messages with a uuid of the task and the data to be processed.

{
  uuid: <Task UUID>,
  data: <Data object>
}

The worker should respond with a message using the same structure.

@class WorkerPool
@param {String} file Worker JS file path.
@param {Number} size Number of workers to be created for this pool.