aboutsummaryrefslogtreecommitdiff
path: root/guava/src/com/google/common/cache/LongAddables.java
diff options
context:
space:
mode:
Diffstat (limited to 'guava/src/com/google/common/cache/LongAddables.java')
-rw-r--r--guava/src/com/google/common/cache/LongAddables.java54
1 files changed, 28 insertions, 26 deletions
diff --git a/guava/src/com/google/common/cache/LongAddables.java b/guava/src/com/google/common/cache/LongAddables.java
index 203d2ef73..a110c6cf1 100644
--- a/guava/src/com/google/common/cache/LongAddables.java
+++ b/guava/src/com/google/common/cache/LongAddables.java
@@ -1,59 +1,61 @@
/*
* Copyright (C) 2012 The Guava Authors
*
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
package com.google.common.cache;
import com.google.common.annotations.GwtCompatible;
import com.google.common.base.Supplier;
+
import java.util.concurrent.atomic.AtomicLong;
/**
- * Source of {@link LongAddable} objects that deals with GWT, Unsafe, and all that.
- *
+ * Source of {@link LongAddable} objects that deals with GWT, Unsafe, and all
+ * that.
+ *
* @author Louis Wasserman
*/
@GwtCompatible(emulated = true)
final class LongAddables {
private static final Supplier<LongAddable> SUPPLIER;
-
+
static {
Supplier<LongAddable> supplier;
try {
- new LongAdder(); // trigger static initialization of the LongAdder class, which may fail
- supplier =
- new Supplier<LongAddable>() {
- @Override
- public LongAddable get() {
- return new LongAdder();
- }
- };
+ new LongAdder();
+ supplier = new Supplier<LongAddable>() {
+ @Override
+ public LongAddable get() {
+ return new LongAdder();
+ }
+ };
} catch (Throwable t) { // we really want to catch *everything*
- supplier =
- new Supplier<LongAddable>() {
- @Override
- public LongAddable get() {
- return new PureJavaLongAddable();
- }
- };
+ supplier = new Supplier<LongAddable>() {
+ @Override
+ public LongAddable get() {
+ return new PureJavaLongAddable();
+ }
+ };
}
SUPPLIER = supplier;
}
-
+
public static LongAddable create() {
return SUPPLIER.get();
}
-
+
private static final class PureJavaLongAddable extends AtomicLong implements LongAddable {
@Override
public void increment() {