diff options
| author | nyanpasu64 <nyanpasu64@tuta.io> | 2022-03-27 22:27:44 -0700 |
|---|---|---|
| committer | nyanpasu64 <nyanpasu64@tuta.io> | 2022-03-27 22:39:26 -0700 |
| commit | 76160276848bd2bbfa6be5335c9cd374ead49a58 (patch) | |
| tree | 8dbdab4743aeefea47ef547922ed10b1f8a9de14 /Source/Core | |
| parent | 871b01a5d91f2812f98b6ed58f024713e3b1ebe1 (diff) | |
Remove unnecessary atomic usage in GCAdapter_Android.cpp
s_controller_write_payload_size needs to remain an atomic because Read()
loads and stores without holding a mutex, Output() stores while holding
s_write_mutex, and ResetRumble() stores while holding s_read_mutex! I'm
pretty sure this code is wrong, specifically ResetRumble().
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/InputCommon/GCAdapter_Android.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Source/Core/InputCommon/GCAdapter_Android.cpp b/Source/Core/InputCommon/GCAdapter_Android.cpp index 1e58733236..b129eaaf0f 100644 --- a/Source/Core/InputCommon/GCAdapter_Android.cpp +++ b/Source/Core/InputCommon/GCAdapter_Android.cpp @@ -41,7 +41,7 @@ static u8 s_controller_rumble[4]; // Input handling static std::mutex s_read_mutex; static std::array<u8, 37> s_controller_payload; -static std::atomic<int> s_controller_payload_size{0}; +static int s_controller_payload_size{0}; // Output handling static std::mutex s_write_mutex; @@ -164,7 +164,7 @@ static void Read() { std::lock_guard<std::mutex> lk(s_read_mutex); std::copy(java_data, java_data + s_controller_payload.size(), s_controller_payload.begin()); - s_controller_payload_size.store(read_size); + s_controller_payload_size = read_size; } env->ReleaseByteArrayElements(*java_controller_payload, java_data, 0); @@ -284,7 +284,7 @@ GCPadStatus Input(int chan) { std::lock_guard<std::mutex> lk(s_read_mutex); controller_payload_copy = s_controller_payload; - payload_size = s_controller_payload_size.load(); + payload_size = s_controller_payload_size; } GCPadStatus pad = {}; |
