diff options
author | Kjetil Ørbekk <kjetil.orbekk@gmail.com> | 2012-04-11 11:25:28 +0200 |
---|---|---|
committer | Kjetil Ørbekk <kjetil.orbekk@gmail.com> | 2012-04-11 11:25:28 +0200 |
commit | 6f414b99c94f5e1562785f9f2b95940a50a70a88 (patch) | |
tree | 81f2a3f55a7961ae55c9e43f94d4ca28f77e6524 /src/main | |
parent | 5120f84996f8ff8d54c5c119034b9251d07bc07b (diff) |
Make Rpc more thread-safe.
:-(
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/com/orbekk/protobuf/Rpc.java | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/main/java/com/orbekk/protobuf/Rpc.java b/src/main/java/com/orbekk/protobuf/Rpc.java index 0f6b6cb..34cdb31 100644 --- a/src/main/java/com/orbekk/protobuf/Rpc.java +++ b/src/main/java/com/orbekk/protobuf/Rpc.java @@ -16,6 +16,7 @@ package com.orbekk.protobuf; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.concurrent.CountDownLatch; @@ -23,11 +24,11 @@ import com.google.protobuf.RpcCallback; import com.google.protobuf.RpcController; public class Rpc implements RpcController { - private String errorText = ""; private CountDownLatch done = new CountDownLatch(1); - private boolean hasFailed; - private boolean canceled; - private List<RpcCallback<Object>> cancelNotificationListeners = null; + private volatile String errorText = ""; + private volatile boolean hasFailed; + private volatile boolean canceled; + private volatile List<RpcCallback<Object>> cancelNotificationListeners = null; public Rpc() { } @@ -95,7 +96,8 @@ public class Rpc implements RpcController { public void notifyOnCancel(RpcCallback<Object> listener) { if (cancelNotificationListeners == null) { cancelNotificationListeners = - new ArrayList<RpcCallback<Object>>(); + Collections.synchronizedList( + new ArrayList<RpcCallback<Object>>()); } cancelNotificationListeners.add(listener); } |