From dc2e19e845ae4d3eab490c5a5d940a4f1847f6f5 Mon Sep 17 00:00:00 2001
From: Hans-Christoph Steiner <hans@eds.org>
Date: Fri, 22 Apr 2022 22:22:09 +0200
Subject: [PATCH] use "volatile" for key variables that are accessed across
 threads

Based on this discussion:
https://github.com/guardianproject/tor-android/issues/67#issuecomment-1043258065#67
---
 .../src/main/java/org/torproject/jni/TorService.java          | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tor-android-binary/src/main/java/org/torproject/jni/TorService.java b/tor-android-binary/src/main/java/org/torproject/jni/TorService.java
index 6269a4ab..c1f4c770 100644
--- a/tor-android-binary/src/main/java/org/torproject/jni/TorService.java
+++ b/tor-android-binary/src/main/java/org/torproject/jni/TorService.java
@@ -192,7 +192,7 @@ public class TorService extends Service {
     private long torConfiguration = -1;
     private int torControlFd = -1;
 
-    private TorControlConnection torControlConnection;
+    private volatile TorControlConnection torControlConnection;
 
     /**
      * This lock must be acquired before calling createTorConfiguration() and
@@ -310,7 +310,7 @@ public class TorService extends Service {
         }
     };
 
-    private CountDownLatch controlPortThreadStarted;
+    private volatile CountDownLatch controlPortThreadStarted;
 
     private int getPortFromGetInfo(String key) {
         final String value = getInfo(key);
-- 
GitLab