From 7d60f403f984c5e155f9d4b1b63765974debd172 Mon Sep 17 00:00:00 2001 From: Fabrizio Cucci Date: Tue, 2 Apr 2024 16:17:39 -0700 Subject: [PATCH] Kotlinify SingleThreadAsserter (#43768) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43768 Changelog: [Internal] As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)). Reviewed By: cortinico Differential Revision: D55636773 fbshipit-source-id: 2f3d1c73a5d3c7d229b854ab73dcf2902a639c3a --- .../ReactAndroid/api/ReactAndroid.api | 4 +-- .../react/common/SingleThreadAsserter.java | 26 ------------------- .../react/common/SingleThreadAsserter.kt | 23 ++++++++++++++++ 3 files changed, 25 insertions(+), 28 deletions(-) delete mode 100644 packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/SingleThreadAsserter.java create mode 100644 packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/SingleThreadAsserter.kt diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 018c2ef4826..f70386ad9e1 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -1746,9 +1746,9 @@ public abstract interface class com/facebook/react/common/ShakeDetector$ShakeLis public abstract fun onShake ()V } -public class com/facebook/react/common/SingleThreadAsserter { +public final class com/facebook/react/common/SingleThreadAsserter { public fun ()V - public fun assertNow ()V + public final fun assertNow ()V } public final class com/facebook/react/common/StandardCharsets { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/SingleThreadAsserter.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/SingleThreadAsserter.java deleted file mode 100644 index 0fa4a093ecd..00000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/SingleThreadAsserter.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -package com.facebook.react.common; - -import androidx.annotation.Nullable; -import com.facebook.infer.annotation.Assertions; -import com.facebook.infer.annotation.Nullsafe; - -/** Simple class for asserting that operations only run on a single thread. */ -@Nullsafe(Nullsafe.Mode.LOCAL) -public class SingleThreadAsserter { - private @Nullable Thread mThread = null; - - public void assertNow() { - Thread current = Thread.currentThread(); - if (mThread == null) { - mThread = current; - } - Assertions.assertCondition(mThread == current); - } -} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/SingleThreadAsserter.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/SingleThreadAsserter.kt new file mode 100644 index 00000000000..dea4cebe617 --- /dev/null +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/SingleThreadAsserter.kt @@ -0,0 +1,23 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +package com.facebook.react.common + +import com.facebook.infer.annotation.Assertions + +/** Simple class for asserting that operations only run on a single thread. */ +public class SingleThreadAsserter { + private var thread: Thread? = null + + public fun assertNow() { + val currentThread = Thread.currentThread() + if (thread == null) { + thread = currentThread + } + Assertions.assertCondition(thread == currentThread) + } +}