@Override
		public void run()
		{
			while(!dead)
			{
				while(!paused && !sleeping)
				{
					int allEmpty = threads.length;

					for(int x = 0; x < threads.length; x++)
					{
						if(threads[x] == null || threads[x].isDone())
						{
							threads[x] = null;
							if(taskQueue.isEmpty())
							{
								allEmpty--;
								continue;
							} else
							{
								threads[x] = taskQueue.poll();
								threads[x].resume();
								new Thread(threads[x]).start();
							}
						}
					}

					if(allEmpty == 0)
					{
						sleeping = true;
					}
				}
				sleep();
			}
		}