jpayne@68: package sketch; jpayne@68: jpayne@68: import java.util.concurrent.ArrayBlockingQueue; jpayne@68: jpayne@68: public class AlignmentJob { jpayne@68: jpayne@68: AlignmentJob(Comparison c_, ArrayBlockingQueue dest_){ jpayne@68: c=c_; jpayne@68: dest=dest_; jpayne@68: } jpayne@68: jpayne@68: void doWork(){ jpayne@68: assert(!isPoison()); jpayne@68: try { jpayne@68: c.ssuIdentity(); jpayne@68: }catch (Throwable t){ jpayne@68: t.printStackTrace(); jpayne@68: } jpayne@68: put(); jpayne@68: } jpayne@68: jpayne@68: private void put(){ jpayne@68: boolean success=false; jpayne@68: while(!success){ jpayne@68: try { jpayne@68: dest.put(c); jpayne@68: success=true; jpayne@68: } catch (InterruptedException e) { jpayne@68: // TODO Auto-generated catch block jpayne@68: e.printStackTrace(); jpayne@68: } jpayne@68: } jpayne@68: } jpayne@68: jpayne@68: final boolean isPoison(){return c==null;} jpayne@68: jpayne@68: final Comparison c; jpayne@68: final ArrayBlockingQueue dest; jpayne@68: jpayne@68: }