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

Comparing jsr166/src/test/loops/RWMap.java (file contents):
Revision 1.5 by jsr166, Thu Oct 29 23:09:08 2009 UTC vs.
Revision 1.8 by jsr166, Mon Dec 5 04:08:46 2011 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   import java.util.*;
7   import java.util.concurrent.*;
# Line 13 | Line 13 | import java.util.concurrent.locks.*;
13   * that places read-write locks around unsynchronized Maps.
14   * Exists as a sample input for MapLoops test.
15   */
16
16   public class RWMap implements Map {
17      private final Map m;
18      private final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();
# Line 30 | Line 29 | public class RWMap implements Map {
29      }
30  
31      public int size() {
32 <        ReentrantReadWriteLock.ReadLock l =  rwl.readLock();
33 <        l.lock(); try {return m.size();} finally { l.unlock(); }
32 >        ReentrantReadWriteLock.ReadLock l = rwl.readLock();
33 >        l.lock();
34 >        try { return m.size(); }
35 >        finally { l.unlock(); }
36      }
37 <    public boolean isEmpty(){
38 <        ReentrantReadWriteLock.ReadLock l =  rwl.readLock();
39 <        l.lock(); try {return m.isEmpty();} finally { l.unlock(); }
37 >
38 >    public boolean isEmpty() {
39 >        ReentrantReadWriteLock.ReadLock l = rwl.readLock();
40 >        l.lock();
41 >        try { return m.isEmpty(); }
42 >        finally { l.unlock(); }
43      }
44  
45      public Object get(Object key) {
46 <        ReentrantReadWriteLock.ReadLock l =  rwl.readLock();
47 <        l.lock(); try {return m.get(key);} finally { l.unlock(); }
46 >        ReentrantReadWriteLock.ReadLock l = rwl.readLock();
47 >        l.lock();
48 >        try { return m.get(key); }
49 >        finally { l.unlock(); }
50      }
51  
52      public boolean containsKey(Object key) {
53 <        ReentrantReadWriteLock.ReadLock l =  rwl.readLock();
54 <        l.lock(); try {return m.containsKey(key);} finally { l.unlock(); }
55 <    }
56 <    public boolean containsValue(Object value){
51 <        ReentrantReadWriteLock.ReadLock l =  rwl.readLock();
52 <        l.lock(); try {return m.containsValue(value);} finally { l.unlock(); }
53 >        ReentrantReadWriteLock.ReadLock l = rwl.readLock();
54 >        l.lock();
55 >        try { return m.containsKey(key); }
56 >        finally { l.unlock(); }
57      }
58  
59 +    public boolean containsValue(Object value) {
60 +        ReentrantReadWriteLock.ReadLock l = rwl.readLock();
61 +        l.lock();
62 +        try { return m.containsValue(value); }
63 +        finally { l.unlock(); }
64 +    }
65  
66      public Set keySet() { // Not implemented
67          return m.keySet();
# Line 66 | Line 76 | public class RWMap implements Map {
76      }
77  
78      public boolean equals(Object o) {
79 <        ReentrantReadWriteLock.ReadLock l =  rwl.readLock();
80 <        l.lock(); try {return m.equals(o);} finally { l.unlock(); }
79 >        ReentrantReadWriteLock.ReadLock l = rwl.readLock();
80 >        l.lock();
81 >        try { return m.equals(o); }
82 >        finally { l.unlock(); }
83      }
84 +
85      public int hashCode() {
86 <        ReentrantReadWriteLock.ReadLock l =  rwl.readLock();
87 <        l.lock(); try {return m.hashCode();} finally { l.unlock(); }
86 >        ReentrantReadWriteLock.ReadLock l = rwl.readLock();
87 >        l.lock();
88 >        try { return m.hashCode(); }
89 >        finally { l.unlock(); }
90      }
91 +
92      public String toString() {
93 <        ReentrantReadWriteLock.ReadLock l =  rwl.readLock();
94 <        l.lock(); try {return m.toString();} finally { l.unlock(); }
93 >        ReentrantReadWriteLock.ReadLock l = rwl.readLock();
94 >        l.lock();
95 >        try { return m.toString(); }
96 >        finally { l.unlock(); }
97      }
98  
81
82
99      public Object put(Object key, Object value) {
100 <        ReentrantReadWriteLock.WriteLock l =  rwl.writeLock();
101 <        l.lock(); try {return m.put(key, value);} finally { l.unlock(); }
100 >        ReentrantReadWriteLock.WriteLock l = rwl.writeLock();
101 >        l.lock();
102 >        try { return m.put(key, value); }
103 >        finally { l.unlock(); }
104      }
105 +
106      public Object remove(Object key) {
107 <        ReentrantReadWriteLock.WriteLock l =  rwl.writeLock();
108 <        l.lock(); try {return m.remove(key);} finally { l.unlock(); }
107 >        ReentrantReadWriteLock.WriteLock l = rwl.writeLock();
108 >        l.lock();
109 >        try { return m.remove(key); }
110 >        finally { l.unlock(); }
111      }
112 +
113      public void putAll(Map map) {
114 <        ReentrantReadWriteLock.WriteLock l =  rwl.writeLock();
115 <        l.lock(); try {m.putAll(map);} finally { l.unlock(); }
114 >        ReentrantReadWriteLock.WriteLock l = rwl.writeLock();
115 >        l.lock();
116 >        try { m.putAll(map); }
117 >        finally { l.unlock(); }
118      }
119 +
120      public void clear() {
121 <        ReentrantReadWriteLock.WriteLock l =  rwl.writeLock();
122 <        l.lock(); try {m.clear();} finally { l.unlock(); }
121 >        ReentrantReadWriteLock.WriteLock l = rwl.writeLock();
122 >        l.lock();
123 >        try { m.clear(); }
124 >        finally { l.unlock(); }
125      }
126  
127   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines