public WorkQueue(int workers, int qSize, BaseWorkTask task) {
		//if queuesize is too small, then recalc so that threshhold is worker count
		queueSize = qSize <= 0 || qSize * PRODUCE_THRESHHOLD <= workers ? (int) (workers / PRODUCE_THRESHHOLD) : qSize;
		queueSize = queueSize < MIN_QUEUE_SIZE ? MIN_QUEUE_SIZE : queueSize;	//check min queue size
		mQueue = new LinkedList<BaseWorkTask>();
		idleQueue = createIdle(queueSize + workers, task);	//account for objects used by workers
	}