package com.revolsys.gis.parallel;
import com.revolsys.parallel.channel.Channel;
import com.revolsys.parallel.process.AbstractInOutProcess;
import com.revolsys.record.Record;
public class SynchronizationProcess extends AbstractInOutProcess<Record, Record> {
private int count = 0;
@Override
public synchronized Channel<Record> getIn() {
this.count++;
return super.getIn();
}
@Override
protected void run(final Channel<Record> in, final Channel<Record> out) {
do {
for (Record object = in.read(); object != null; object = in.read()) {
out.write(object);
}
this.count--;
} while (this.count > 0);
}
}