org.openjdk.jmh.util.Deduplicator vs threading issues
Vladimir Sitnikov
sitnikov.vladimir at gmail.com
Wed Apr 22 17:25:47 UTC 2015
Please find the patch attached.
Vladimir
-------------- next part --------------
# HG changeset patch
# User Vladimir Sitnikov <sitnikov.vladimir at gmail.com>
# Date 1429723059 -10800
# Wed Apr 22 20:17:39 2015 +0300
# Node ID 1b3c409d1331bb00a7439b12d1acdeb2ae122bef
# Parent 763c4cf039d82067e5dcc35c75210d831b3c0951
Make Deduplicator thread safe
diff -r 763c4cf039d8 -r 1b3c409d1331 jmh-core/src/main/java/org/openjdk/jmh/util/Deduplicator.java
--- a/jmh-core/src/main/java/org/openjdk/jmh/util/Deduplicator.java Wed Apr 22 20:13:09 2015 +0300
+++ b/jmh-core/src/main/java/org/openjdk/jmh/util/Deduplicator.java Wed Apr 22 20:17:39 2015 +0300
@@ -24,23 +24,22 @@
*/
package org.openjdk.jmh.util;
-import java.util.HashMap;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
public class Deduplicator<T> {
final Map<T, T> map;
public Deduplicator() {
- map = new HashMap<T, T>();
+ map = new ConcurrentHashMap<T, T>();
}
public T dedup(T t) {
- T et = map.get(t);
+ T et = map.putIfAbsent(t, t);
if (et != null) {
return et;
} else {
- map.put(t, t);
return t;
}
}
More information about the jmh-dev
mailing list