@Override
		public void run() {
			while(!abort) {
				try {
					QueryTask current = null;
					synchronized (tasks) {
						if(!tasks.isEmpty()) {
							current = tasks.remove(0);
						}
					}
					if(current != null) {
						current.runTask();
						current = null;
					}
					synchronized (tasks) {
						if(tasks.isEmpty()) {
							tasks.wait();
						}
					}
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}