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

Comparing jsr166/src/test/loops/CheckedLockLoops.java (file contents):
Revision 1.6 by jsr166, Thu Sep 16 03:57:13 2010 UTC vs.
Revision 1.13 by jsr166, Sat Dec 31 22:17:40 2016 UTC

# Line 1 | Line 1
1   /*
2   * Written by Doug Lea with assistance from members of JCP JSR-166
3   * Expert Group and released to the public domain, as explained at
4 < * http://creativecommons.org/licenses/publicdomain
4 > * http://creativecommons.org/publicdomain/zero/1.0/
5   */
6   /*
7   * @test
8   * @summary basic safety and liveness of ReentrantLocks, and other locks based on them
9   */
10  
11 < import java.util.concurrent.*;
12 < import java.util.concurrent.locks.*;
13 < import java.util.*;
11 > import java.util.concurrent.CyclicBarrier;
12 > import java.util.concurrent.ExecutorService;
13 > import java.util.concurrent.Executors;
14 > import java.util.concurrent.Semaphore;
15 > import java.util.concurrent.locks.Lock;
16 > import java.util.concurrent.locks.ReentrantLock;
17 > import java.util.concurrent.locks.ReentrantReadWriteLock;
18  
19   public final class CheckedLockLoops {
20      static final ExecutorService pool = Executors.newCachedThreadPool();
# Line 31 | Line 35 | public final class CheckedLockLoops {
35  
36      static void runTest(int maxThreads, int iters) throws Exception {
37          print = true;
38 <        int k = 1;
35 <        for (int i = 1; i <= maxThreads;) {
38 >        for (int k = 1, i = 1; i <= maxThreads;) {
39              System.out.println("Threads:" + i);
40              oneTest(i, iters / i);
41              if (i == k) {
# Line 118 | Line 121 | public final class CheckedLockLoops {
121          Thread.sleep(10);
122      }
123  
124 <    static abstract class LockLoop implements Runnable {
124 >    abstract static class LockLoop implements Runnable {
125          int value;
126          int checkValue;
127          int iters;
# Line 207 | Line 210 | public final class CheckedLockLoops {
210      }
211  
212      private static class ReentrantLockLoop extends LockLoop {
213 <        final private ReentrantLock lock = new ReentrantLock();
213 >        private final ReentrantLock lock = new ReentrantLock();
214          final int loop(int n) {
215              final ReentrantLock lock = this.lock;
216              int sum = 0;
# Line 227 | Line 230 | public final class CheckedLockLoops {
230      }
231  
232      private static class MutexLoop extends LockLoop {
233 <        final private Mutex lock = new Mutex();
233 >        private final Mutex lock = new Mutex();
234          final int loop(int n) {
235              final Mutex lock = this.lock;
236              int sum = 0;
# Line 247 | Line 250 | public final class CheckedLockLoops {
250      }
251  
252      private static class LongMutexLoop extends LockLoop {
253 <        final private LongMutex lock = new LongMutex();
253 >        private final LongMutex lock = new LongMutex();
254          final int loop(int n) {
255              final LongMutex lock = this.lock;
256              int sum = 0;
# Line 267 | Line 270 | public final class CheckedLockLoops {
270      }
271  
272      private static class FairReentrantLockLoop extends LockLoop {
273 <        final private ReentrantLock lock = new ReentrantLock(true);
273 >        private final ReentrantLock lock = new ReentrantLock(true);
274          final int loop(int n) {
275              final ReentrantLock lock = this.lock;
276              int sum = 0;
# Line 287 | Line 290 | public final class CheckedLockLoops {
290      }
291  
292      private static class ReentrantWriteLockLoop extends LockLoop {
293 <        final private Lock lock = new ReentrantReadWriteLock().writeLock();
293 >        private final Lock lock = new ReentrantReadWriteLock().writeLock();
294          final int loop(int n) {
295              final Lock lock = this.lock;
296              int sum = 0;
# Line 327 | Line 330 | public final class CheckedLockLoops {
330      }
331  
332      private static class SemaphoreLoop extends LockLoop {
333 <        final private Semaphore sem = new Semaphore(1, false);
333 >        private final Semaphore sem = new Semaphore(1, false);
334          final int loop(int n) {
335              final Semaphore sem = this.sem;
336              int sum = 0;
# Line 346 | Line 349 | public final class CheckedLockLoops {
349          }
350      }
351      private static class FairSemaphoreLoop extends LockLoop {
352 <        final private Semaphore sem = new Semaphore(1, true);
352 >        private final Semaphore sem = new Semaphore(1, true);
353          final int loop(int n) {
354              final Semaphore sem = this.sem;
355              int sum = 0;
# Line 366 | Line 369 | public final class CheckedLockLoops {
369      }
370  
371      private static class ReentrantReadWriteLockLoop extends LockLoop {
372 <        final private ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
372 >        private final ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
373          final int loop(int n) {
374              final Lock rlock = lock.readLock();
375              final Lock wlock = lock.writeLock();
# Line 399 | Line 402 | public final class CheckedLockLoops {
402  
403      }
404  
402
405      private static class FairReentrantReadWriteLockLoop extends LockLoop {
406 <        final private ReentrantReadWriteLock lock = new ReentrantReadWriteLock(true);
406 >        private final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(true);
407          final int loop(int n) {
408              final Lock rlock = lock.readLock();
409              final Lock wlock = lock.writeLock();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines