Commit 056d1853 authored by Gerald Squelart's avatar Gerald Squelart
Browse files

Bug 1721569 - Use std::this_thread::get_id() on other platforms - r=florian

Now `profiler_current_thread_id()` is available on all platforms, at all tier levels.

Differential Revision: https://phabricator.services.mozilla.com/D121053
parent 032f23b1
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -114,7 +114,7 @@ BaseProfilerThreadId profiler_current_thread_id() {
namespace mozilla::baseprofiler {

BaseProfilerThreadId profiler_current_thread_id() {
  return BaseProfilerThreadId{};
  return BaseProfilerThreadId::FromNativeId(std::this_thread::get_id());
}

}  // namespace mozilla::baseprofiler
+3 −1
Original line number Diff line number Diff line
@@ -61,8 +61,10 @@ using ThreadIdType = long;
// ------------------------------------------------------- Others
#  else

#    include <thread>

namespace mozilla::baseprofiler::detail {
using ThreadIdType = int;
using ThreadIdType = std::thread::id;
}  // namespace mozilla::baseprofiler::detail

#  endif
+0 −10
Original line number Diff line number Diff line
@@ -187,8 +187,6 @@ void TestProfilerUtils() {
    static_assert(std::is_same_v<
                  decltype(mozilla::baseprofiler::profiler_current_thread_id()),
                  BaseProfilerThreadId>);
#if defined(XP_WIN) || defined(XP_MACOSX) || defined(__ANDROID__) || \
    defined(ANDROID) || defined(XP_LINUX) || defined(XP_FREEBSD)
    BaseProfilerThreadId mainTestThreadId =
        mozilla::baseprofiler::profiler_current_thread_id();
    MOZ_RELEASE_ASSERT(mainTestThreadId.IsSpecified());
@@ -209,14 +207,6 @@ void TestProfilerUtils() {
      MOZ_RELEASE_ASSERT(!mozilla::baseprofiler::profiler_is_main_thread());
    });
    testThread.join();
#else
    // Yet-unsupported platforms.
    MOZ_RELEASE_ASSERT(
        !mozilla::baseprofiler::profiler_current_thread_id().IsSpecified());
    MOZ_RELEASE_ASSERT(
        !mozilla::baseprofiler::profiler_main_thread_id().IsSpecified());
    MOZ_RELEASE_ASSERT(!mozilla::baseprofiler::profiler_is_main_thread());
#endif
  }

  // No conversions between processes and threads.
+3 −1
Original line number Diff line number Diff line
@@ -87,7 +87,9 @@ ProfilerThreadId profiler_current_thread_id() {
// ------------------------------------------------------- Others
#  else

ProfilerThreadId profiler_current_thread_id() { return ProfilerThreadId{}; }
ProfilerThreadId profiler_current_thread_id() {
  return ProfilerThreadId::FromNativeId(std::this_thread::get_id());
}

#  endif
#endif  // End of non-XP_WIN.
+0 −12
Original line number Diff line number Diff line
@@ -72,8 +72,6 @@ TEST(GeckoProfiler, ProfilerUtils)
  EXPECT_EQ(profiler_current_thread_id(),
            baseprofiler::profiler_current_thread_id());

#if defined(XP_WIN) || defined(XP_MACOSX) || defined(__ANDROID__) || \
    defined(ANDROID) || defined(XP_LINUX) || defined(XP_FREEBSD)
  ProfilerThreadId mainTestThreadId = profiler_current_thread_id();
  EXPECT_TRUE(mainTestThreadId.IsSpecified());

@@ -98,16 +96,6 @@ TEST(GeckoProfiler, ProfilerUtils)
    EXPECT_FALSE(baseprofiler::profiler_is_main_thread());
  });
  testThread.join();
#else
  // Yet-unsupported platforms.
  EXPECT_FALSE(profiler_current_thread_id().IsSpecified());
  EXPECT_FALSE(profiler_main_thread_id().IsSpecified());
  EXPECT_FALSE(profiler_is_main_thread());

  EXPECT_FALSE(baseprofiler::profiler_current_thread_id().IsSpecified());
  EXPECT_FALSE(baseprofiler::profiler_main_thread_id().IsSpecified());
  EXPECT_FALSE(baseprofiler::profiler_is_main_thread());
#endif
}

#ifdef MOZ_GECKO_PROFILER