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_; }