private void newChunk() throws IOException {
		if(!delegateEof) {
			int cLength = readVInt();
			if (cLength == 0) {
				delegateEof = true;
				return;
			}
			byte[] cbuffer = new byte[cLength];
			int o = 0;
			while(o < cLength) {
				o += in.read(cbuffer, o, cbuffer.length - o);
			}
			DecompTask task = new DecompTask(cbuffer);
			tasks.add(task);
			executor.execute(task);
		}
	}