Content-Length: 558456 | pFad | http://github.com/facebook/react-native/pull/49396/commits/2a31e3c93e8c89a3a10f83a8633b9817da205bea

90 Move RuntimeExecutor up by hoxyq · Pull Request #49396 · facebook/react-native · GitHub
Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move RuntimeExecutor up #49396

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Define OSCompat module
Summary:
# Changelog: [Internal]

Added OS-agnostic module that will implement 2 basic capabilities:
- Getting current process id
- Getting current thread id

This information will later be used in `PerformanceTracer`, which is trace-engine for recording profiles that can be inspected in Chrome DevTools.

Differential Revision: D69316093
  • Loading branch information
hoxy authored and facebook-github-bot committed Feb 12, 2025
commit 2a31e3c93e8c89a3a10f83a8633b9817da205bea
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ add_react_common_subdir(cxxreact)
add_react_common_subdir(jsc)
add_react_common_subdir(jsi)
add_react_common_subdir(callinvoker)
add_react_common_subdir(oscompat)
add_react_common_subdir(jsinspector-modern)
add_react_common_subdir(jsinspector-modern/tracing)
add_react_common_subdir(hermes/executor)
Expand Down Expand Up @@ -167,6 +168,7 @@ add_library(reactnative
$<TARGET_OBJECTS:jsireact>
$<TARGET_OBJECTS:logger>
$<TARGET_OBJECTS:mapbufferjni>
$<TARGET_OBJECTS:oscompat>
$<TARGET_OBJECTS:react_bridging>
$<TARGET_OBJECTS:react_codegen_rncore>
$<TARGET_OBJECTS:react_cxxreact>
Expand Down
14 changes: 14 additions & 0 deletions packages/react-native/ReactCommon/oscompat/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# 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.

cmake_minimum_required(VERSION 3.13)
set(CMAKE_VERBOSE_MAKEFILE on)

add_compile_options(-fexceptions)

file(GLOB oscompat_SRC CONFIGURE_DEPENDS *.cpp)
add_library(oscompat OBJECT ${oscompat_SRC})

target_include_directories(oscompat PUBLIC .)
18 changes: 18 additions & 0 deletions packages/react-native/ReactCommon/oscompat/OSCompat.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/*
* 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.
*/

#pragma once

#include <cstdint>

namespace facebook::react::oscompat {

uint64_t getCurrentProcessId();

uint64_t getCurrentThreadId();

} // namespace facebook::react::oscompat
63 changes: 63 additions & 0 deletions packages/react-native/ReactCommon/oscompat/OSCompatPosix.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
/*
* 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.
*/

#if defined(__linux__) || (defined(__APPLE__) && defined(__MACH__)) || \
defined(__ANDROID__)

#include "OSCompat.h"

#include <cassert>

#include <pthread.h>
#include <unistd.h>

#if defined(__MACH__)
#include <mach/mach.h>
#endif // defined(__MACH__)

#if defined(__linux__)
#include <sys/syscall.h>
#endif // defined(__linux__)

namespace facebook::react::oscompat {

uint64_t getCurrentProcessId() {
return getpid();
}

#if defined(__APPLE__) && defined(__MACH__)

uint64_t getCurrentThreadId() {
uint64_t tid = 0;
auto ret = pthread_threadid_np(nullptr, &tid);
assert(
ret == 0 &&
"Unexpected pthread_threadid_np failure while getting thread ID");
(void)ret;
return tid;
}

#elif defined(__ANDROID__)

uint64_t getCurrentThreadId() {
return gettid();
}

#elif defined(__linux__)

uint64_t getCurrentThreadId() {
return syscall(__NR_gettid);
}

#else
#error "getCurrentThreadID() is not supported on this platform"
#endif

} // namespace facebook::react::oscompat

#endif // defined(__linux__) || (defined(__APPLE__) && defined(__MACH__)) ||
// defined(__ANDROID__)
26 changes: 26 additions & 0 deletions packages/react-native/ReactCommon/oscompat/OSCompatWindows.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/*
* 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.
*/

#if defined(_WIN32) || defined(_MSC_VER)

#include "OSCompat.h"

#include <windows.h>

namespace facebook::react::oscompat {

uint64_t getCurrentProcessId() {
return GetCurrentProcessId();
}

uint64_t getCurrentThreadId() {
return GetCurrentThreadId();
}

} // namespace facebook::react::oscompat

#endif // defined(_WIN32) || defined(_MSC_VER)
31 changes: 31 additions & 0 deletions packages/react-native/ReactCommon/oscompat/React-oscompat.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# 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.

require "json"

package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
version = package['version']

source = { :git => 'https://github.com/facebook/react-native.git' }
if version == '1000.0.0'
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
else
source[:tag] = "v#{version}"
end

Pod::Spec.new do |s|
s.name = "React-oscompat"
s.version = version
s.summary = "Small set of OS-level utilities for React Native"
s.homepage = "https://reactnative.dev/"
s.license = package["license"]
s.author = "Meta Platforms, Inc. and its affiliates"
s.platforms = min_supported_versions
s.source = source
s.source_files = "*.{cpp,h}"
s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "" }
s.header_dir = "oscompat"
end
1 change: 1 addition & 0 deletions packages/react-native/scripts/cocoapods/utils.rb
Original file line number Diff line number Diff line change
Expand Up @@ -634,6 +634,7 @@ def self.react_native_pods
"React-jsiexecutor",
"React-jsinspector",
"React-logger",
"React-oscompat",
"React-perflogger",
"React-rncore",
"React-runtimeexecutor",
Expand Down
1 change: 1 addition & 0 deletions packages/react-native/scripts/react_native_pods.rb
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@ def use_react_native! (
pod 'React-rendererdebug', :path => "#{prefix}/ReactCommon/react/renderer/debug"
pod 'React-rendererconsistency', :path => "#{prefix}/ReactCommon/react/renderer/consistency"
pod 'React-perflogger', :path => "#{prefix}/ReactCommon/reactperflogger"
pod 'React-oscompat', :path => "#{prefix}/ReactCommon/oscompat"
pod 'React-logger', :path => "#{prefix}/ReactCommon/logger"
pod 'ReactCommon/turbomodule/core', :path => "#{prefix}/ReactCommon", :modular_headers => true
pod 'React-NativeModulesApple', :path => "#{prefix}/ReactCommon/react/nativemodule/core/platform/ios", :modular_headers => true
Expand Down
5 changes: 5 additions & 0 deletions packages/rn-tester/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1367,6 +1367,7 @@ PODS:
- React-runtimeexecutor
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- React-oscompat (1000.0.0)
- React-perflogger (1000.0.0):
- DoubleConversion
- RCT-Folly (= 2024.11.18.00)
Expand Down Expand Up @@ -1743,6 +1744,7 @@ DEPENDENCIES:
- React-Mapbuffer (from `../react-native/ReactCommon`)
- React-microtasksnativemodule (from `../react-native/ReactCommon/react/nativemodule/microtasks`)
- React-NativeModulesApple (from `../react-native/ReactCommon/react/nativemodule/core/platform/ios`)
- React-oscompat (from `../react-native/ReactCommon/oscompat`)
- React-perflogger (from `../react-native/ReactCommon/reactperflogger`)
- React-performancetimeline (from `../react-native/ReactCommon/react/performance/timeline`)
- React-RCTActionSheet (from `../react-native/Libraries/ActionSheetIOS`)
Expand Down Expand Up @@ -1866,6 +1868,8 @@ EXTERNAL SOURCES:
:path: "../react-native/ReactCommon/react/nativemodule/microtasks"
React-NativeModulesApple:
:path: "../react-native/ReactCommon/react/nativemodule/core/platform/ios"
React-oscompat:
:path: "../react-native/ReactCommon/oscompat"
React-perflogger:
:path: "../react-native/ReactCommon/reactperflogger"
React-performancetimeline:
Expand Down Expand Up @@ -1976,6 +1980,7 @@ SPEC CHECKSUMS:
React-Mapbuffer: cd5e7720cb5fd9c0bc43ae71a952cc2a16711a5a
React-microtasksnativemodule: 6af4b5b26640a12f9abc421a014f300d2a02b789
React-NativeModulesApple: 612e7d0ccf461840f010689daa86fd058aec01c5
React-oscompat: 7133e0e945cda067ae36b22502df663d73002864
React-perflogger: 6f2b10b96094d29e1dca6be7689d975b98ba4166
React-performancetimeline: b91e898716885df30697e54eab3eb14f6b48766b
React-RCTActionSheet: 1bf8cc8086ad1c15da3407dfb7bc9dd94dc7595d
Expand Down








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/facebook/react-native/pull/49396/commits/2a31e3c93e8c89a3a10f83a8633b9817da205bea

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy