From d4043d9976d1b406fa6a8f235b81cbe68828b386 Mon Sep 17 00:00:00 2001 From: Jelle Foks Date: Wed, 8 Jan 2025 15:36:12 -0800 Subject: [PATCH] Only try to profile threads in valid samplers. This adds a check to ensure we're not sending profiling signals to threads in invalid samplers. b/388595578 --- starboard/shared/pthread/thread_sampler_internal.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/starboard/shared/pthread/thread_sampler_internal.cc b/starboard/shared/pthread/thread_sampler_internal.cc index 744d5de264a6..355057b3dfa4 100644 --- a/starboard/shared/pthread/thread_sampler_internal.cc +++ b/starboard/shared/pthread/thread_sampler_internal.cc @@ -99,9 +99,11 @@ SbThreadContext SignalHandler::Freeze(SbThreadSampler sampler) { if (!signal_handler_installed_ || SbThreadSamplerIsValid(frozen_sampler_)) { return kSbThreadContextInvalid; } - frozen_sampler_ = sampler; - pthread_kill(SB_PTHREAD_INTERNAL_THREAD(sampler->thread()), SIGPROF); - sem_wait(&freeze_semaphore_); + if (SbThreadSamplerIsValid(sampler)) { + frozen_sampler_ = sampler; + pthread_kill(SB_PTHREAD_INTERNAL_THREAD(sampler->thread()), SIGPROF); + sem_wait(&freeze_semaphore_); + } return &sb_context_; }