You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by he...@apache.org on 2019/02/22 20:56:22 UTC
[geode] branch release/1.9.0 updated: GEODE-6440: synchronize when
getting and setting (#3220)
This is an automated email from the ASF dual-hosted git repository.
heybales pushed a commit to branch release/1.9.0
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/release/1.9.0 by this push:
new acf39ac GEODE-6440: synchronize when getting and setting (#3220)
acf39ac is described below
commit acf39ac301197a7be5df1b27ddf0a60aa6fc876d
Author: Helena Bales <hb...@pivotal.io>
AuthorDate: Fri Feb 22 10:14:30 2019 -0800
GEODE-6440: synchronize when getting and setting (#3220)
Synchronize on getting and setting stats to avoid a race condition that
could occur when multiple threads were trying to set gauge stats.
Signed-off-by: Jacob Barrett <jb...@pivotal.io>
(cherry picked from commit ca41a5c32a317bbff672d76c4038f731746d6ffb)
---
.../internal/statistics/StripedStatisticsImpl.java | 30 +++++++++++++++-------
1 file changed, 21 insertions(+), 9 deletions(-)
diff --git a/geode-core/src/main/java/org/apache/geode/internal/statistics/StripedStatisticsImpl.java b/geode-core/src/main/java/org/apache/geode/internal/statistics/StripedStatisticsImpl.java
index 3dc6e92..1fcd90d 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/statistics/StripedStatisticsImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/statistics/StripedStatisticsImpl.java
@@ -54,35 +54,47 @@ public class StripedStatisticsImpl extends StatisticsImpl {
@Override
protected void _setInt(int offset, int value) {
- intAdders[offset].reset();
- intAdders[offset].add(value);
+ synchronized (intAdders[offset]) {
+ intAdders[offset].reset();
+ intAdders[offset].add(value);
+ }
}
@Override
protected void _setLong(int offset, long value) {
- longAdders[offset].reset();
- longAdders[offset].add(value);
+ synchronized (longAdders[offset]) {
+ longAdders[offset].reset();
+ longAdders[offset].add(value);
+ }
}
@Override
protected void _setDouble(int offset, double value) {
- doubleAdders[offset].reset();
- doubleAdders[offset].add(value);
+ synchronized (doubleAdders[offset]) {
+ doubleAdders[offset].reset();
+ doubleAdders[offset].add(value);
+ }
}
@Override
protected int _getInt(int offset) {
- return intAdders[offset].intValue();
+ synchronized (intAdders[offset]) {
+ return intAdders[offset].intValue();
+ }
}
@Override
protected long _getLong(int offset) {
- return longAdders[offset].sum();
+ synchronized (longAdders[offset]) {
+ return longAdders[offset].sum();
+ }
}
@Override
protected double _getDouble(int offset) {
- return doubleAdders[offset].sum();
+ synchronized (doubleAdders[offset]) {
+ return doubleAdders[offset].sum();
+ }
}
@Override