public final void serialize(final SongDataEntry data) throws IOException {
		generateStream(data);
		this.songsParsed.incrementAndGet();
		boolean update = false;
		synchronized (this) {
			if (this.crawlDone && this.deserialDone) {
				update = true;

			}
		}
		if (this.crawlDone && (this.songsParsed.get() == this.songsFound.get())) {
			return;
		}
		if (update) {
			this.io.updateProgress();
		}
	}