ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/loops/ConcurrentDequeLoops.java
(Generate patch)

Comparing jsr166/src/test/loops/ConcurrentDequeLoops.java (file contents):
Revision 1.2 by dl, Mon Feb 19 00:46:06 2007 UTC vs.
Revision 1.3 by jsr166, Thu Oct 29 23:09:07 2009 UTC

# Line 26 | Line 26 | public class ConcurrentDequeLoops {
26                  throw new RuntimeException("Class " + args[0] + " not found.");
27              }
28          }
29 <        else
29 >        else
30              throw new Error();
31  
32 <        if (args.length > 1)
32 >        if (args.length > 1)
33              maxStages = Integer.parseInt(args[1]);
34  
35          System.out.print("Class: " + klass.getName());
# Line 49 | Line 49 | public class ConcurrentDequeLoops {
49              if (i == k) {
50                  k = i << 1;
51                  i = i + (i >>> 1);
52 <            }
53 <            else
52 >            }
53 >            else
54                  i = k;
55          }
56          pool.shutdown();
# Line 62 | Line 62 | public class ConcurrentDequeLoops {
62          final LoopHelpers.SimpleRandom rng = new LoopHelpers.SimpleRandom();
63          int items;
64          Stage (Deque<Integer> q, CyclicBarrier b, int items) {
65 <            queue = q;
65 >            queue = q;
66              barrier = b;
67              this.items = items;
68          }
# Line 100 | Line 100 | public class ConcurrentDequeLoops {
100                          else
101                              queue.addLast(res);
102                      }
103 <                    else { // spinwait
103 >                    else { // spinwait
104                          for (int k = 1 + (l & 15); k != 0; --k)
105                              l = LoopHelpers.compute1(LoopHelpers.compute2(l));
106                          if ((l & 3) == 3) {
# Line 110 | Line 110 | public class ConcurrentDequeLoops {
110                  }
111                  return new Integer(l);
112              }
113 <            catch (Exception ie) {
113 >            catch (Exception ie) {
114                  ie.printStackTrace();
115                  throw new Error("Call loop failed");
116              }
# Line 123 | Line 123 | public class ConcurrentDequeLoops {
123          CyclicBarrier barrier = new CyclicBarrier(n + 1, timer);
124          totalItems = new AtomicInteger(n * items);
125          ArrayList<Future<Integer>> results = new ArrayList<Future<Integer>>(n);
126 <        for (int i = 0; i < n; ++i)
126 >        for (int i = 0; i < n; ++i)
127              results.add(pool.submit(new Stage(q, barrier, items)));
128  
129          if (print)
# Line 141 | Line 141 | public class ConcurrentDequeLoops {
141              System.out.println(LoopHelpers.rightJustify(time / (items * n)) + " ns per item");
142          if (total == 0) // avoid overoptimization
143              System.out.println("useless result: " + total);
144 <        
144 >
145      }
146   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines