/[projects]/dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/afstandandenrute/LookupWorker.java
ViewVC logotype

Diff of /dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/afstandandenrute/LookupWorker.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2892 by torben, Sun Jan 31 22:45:03 2016 UTC revision 2893 by torben, Mon Feb 1 07:02:12 2016 UTC
# Line 4  import java.sql.SQLException; Line 4  import java.sql.SQLException;
4  import java.util.ArrayList;  import java.util.ArrayList;
5  import java.util.Map;  import java.util.Map;
6  import java.util.Queue;  import java.util.Queue;
 import java.util.concurrent.BrokenBarrierException;  
7  import java.util.concurrent.CyclicBarrier;  import java.util.concurrent.CyclicBarrier;
8  import java.util.concurrent.atomic.AtomicInteger;  import java.util.concurrent.atomic.AtomicInteger;
9  import java.util.logging.Level;  import java.util.logging.Level;
# Line 74  public class LookupWorker implements Run Line 73  public class LookupWorker implements Run
73    
74                  ServiceConfig conf = ServiceConfig.getInstance();                  ServiceConfig conf = ServiceConfig.getInstance();
75    
76                  try {                  try (BarrierMarker marker = new BarrierMarker() ) {
77                          while ( ! ikkeDaekkede.isEmpty() ) {                          while ( ! ikkeDaekkede.isEmpty() ) {
78    
79                                  if (task.isAborted()) {                                  if (task.isAborted()) {
80                                          System.out.println( "Worker/" + workerID + " aborting");                                          System.out.println( "Worker/" + workerID + " aborting");
81                                          return;                                          break;
82                                  }                                  }
83    
84    
# Line 155  public class LookupWorker implements Run Line 154  public class LookupWorker implements Run
154                  }                  }
155    
156    
157                    
                 try {  
                         logger.info( "Worker/" + workerID + " afventer barrier");  
                         barrier.await();  
                 } catch (Exception e) {  
                         logger.log(Level.SEVERE, e.getMessage(), e);  
                 }  
158    
159                  System.out.println( "Worker/" + workerID + " stopping");                  System.out.println( "Worker/" + workerID + " stopping");
160          }          }
161            
162            
163            /**
164             * Makes sure the barrier is touched correctly no matter how the the current code block is exited.
165             * @author thn
166             *
167             */
168            public class BarrierMarker implements AutoCloseable {
169                    @Override
170                    public void close() {
171                            try {
172                                    logger.info( "Worker/" + workerID + " afventer barrier");
173                                    barrier.await();
174                            } catch (Exception e) {
175                                    logger.log(Level.SEVERE, e.getMessage(), e);
176                            }
177                    }
178            }
179    
180  }  }

Legend:
Removed from v.2892  
changed lines
  Added in v.2893

  ViewVC Help
Powered by ViewVC 1.1.20