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

Comparing jsr166/src/test/loops/SubmissionPublisherLoops2.java (file contents):
Revision 1.1 by dl, Thu Jul 23 11:13:47 2015 UTC vs.
Revision 1.3 by jsr166, Mon Sep 7 21:44:29 2015 UTC

# Line 4 | Line 4
4   * http://creativecommons.org/publicdomain/zero/1.0/
5   */
6  
7
7   import java.util.*;
8   import java.util.concurrent.*;
9  
# Line 22 | Line 21 | public class SubmissionPublisherLoops2 {
21      static class Sub implements Flow.Subscriber<Boolean> {
22          Flow.Subscription sn;
23          int count;
24 <        public void onSubscribe(Flow.Subscription s) {
25 <            (sn = s).request(CAP);
24 >        public void onSubscribe(Flow.Subscription s) {
25 >            (sn = s).request(CAP);
26          }
27 <        public void onNext(Boolean t) {
27 >        public void onNext(Boolean t) {
28              if ((++count & (CAP - 1)) == (CAP >>> 1))
29                  sn.request(CAP);
30          }
31          public void onError(Throwable t) { t.printStackTrace(); }
32 <        public void onComplete() {
32 >        public void onComplete() {
33              if (count != ITEMS)
34                  System.out.println("Error: remaining " + (ITEMS - count));
35 <            phaser.arrive();
35 >            phaser.arrive();
36          }
37      }
38  
39      static final class Pub extends RecursiveAction {
40 <        final SubmissionPublisher<Boolean> pub =
40 >        final SubmissionPublisher<Boolean> pub =
41              new SubmissionPublisher<Boolean>(ForkJoinPool.commonPool(), CAP);
42          public void compute() {
43              SubmissionPublisher<Boolean> p = pub;
44              for (int i = 0; i < CONSUMERS; ++i)
45                  p.subscribe(new Sub());
46 <            for (int i = 0; i < ITEMS; ++i)
46 >            for (int i = 0; i < ITEMS; ++i)
47                  p.submit(Boolean.TRUE);
48              p.close();
49          }
# Line 56 | Line 55 | public class SubmissionPublisherLoops2 {
55          int reps = REPS;
56          if (args.length > 0)
57              reps = Integer.parseInt(args[0]);
58 <        
59 <        System.out.println("ITEMS: " + ITEMS +
58 >
59 >        System.out.println("ITEMS: " + ITEMS +
60                             " CONSUMERS: " + CONSUMERS +
61                             " CAP: " + CAP);
62  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines