1 package sketch;
2 
3 import java.util.concurrent.ArrayBlockingQueue;
4 
5 public class AlignmentJob {
6 
AlignmentJob(Comparison c_, ArrayBlockingQueue<Comparison> dest_)7 	AlignmentJob(Comparison c_, ArrayBlockingQueue<Comparison> dest_){
8 		c=c_;
9 		dest=dest_;
10 	}
11 
doWork()12 	void doWork(){
13 		assert(!isPoison());
14 		try {
15 			c.ssuIdentity();
16 		}catch (Throwable t){
17 			t.printStackTrace();
18 		}
19 		put();
20 	}
21 
put()22 	private void put(){
23 		boolean success=false;
24 		while(!success){
25 			try {
26 				dest.put(c);
27 				success=true;
28 			} catch (InterruptedException e) {
29 				// TODO Auto-generated catch block
30 				e.printStackTrace();
31 			}
32 		}
33 	}
34 
isPoison()35 	final boolean isPoison(){return c==null;}
36 
37 	final Comparison c;
38 	final ArrayBlockingQueue<Comparison> dest;
39 
40 }