From 6f414b99c94f5e1562785f9f2b95940a50a70a88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kjetil=20=C3=98rbekk?= Date: Wed, 11 Apr 2012 11:25:28 +0200 Subject: Make Rpc more thread-safe. :-( --- src/main/java/com/orbekk/protobuf/Rpc.java | 12 +++++++----- 1 file 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> cancelNotificationListeners = null; + private volatile String errorText = ""; + private volatile boolean hasFailed; + private volatile boolean canceled; + private volatile List> cancelNotificationListeners = null; public Rpc() { } @@ -95,7 +96,8 @@ public class Rpc implements RpcController { public void notifyOnCancel(RpcCallback listener) { if (cancelNotificationListeners == null) { cancelNotificationListeners = - new ArrayList>(); + Collections.synchronizedList( + new ArrayList>()); } cancelNotificationListeners.add(listener); } -- cgit v1.2.3