Use main_thread->ec from rb_vm_main_ractor_ec #9311
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
rb_vm_main_ractor_ec
was introduced to allowrb_postponed_job_*
to work when fired on non-Ruby threads, which have no EC set, and that is its only use.When
RUBY_MN_THREADS=1
is setractor->threads.running_ec
isNULL
when the shared thread is sleeping. This instead grabs the EC directly from the main thread which seems to always be set.With this change StackProf works with
RUBY_MN_THREADS=1
set (this should fix tmm1/stackprof#221)Fixes [Bug #20016]
cc @byroot @ko1 @KJTsanaktsidis @tenderlove
cc @ivoanjo I noticed DataDog/dd-trace-rb#3259 does this change fix the issue for ddtrace?