diff options
| author | Jean byroot Boussier <jean.boussier+github@shopify.com> | 2023-02-06 23:30:00 +0100 |
|---|---|---|
| committer | Jean Boussier <jean.boussier@gmail.com> | 2023-02-06 23:30:35 +0100 |
| commit | c19defd02665492de7147572714ebe692260c849 (patch) | |
| tree | abc68e28c4bc4c09e289ca85e09db8124b4ac8b7 | |
| parent | c30602e64ce437be86180590eee27b0b6ed83a16 (diff) | |
Revert "Only emit circular dependency warning for owned thread shields"
This reverts commit fa49651e05a06512e18ccb2f54a7198c9ff579de.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/7256
| -rw-r--r-- | internal/thread.h | 1 | ||||
| -rw-r--r-- | load.c | 3 | ||||
| -rw-r--r-- | spec/ruby/core/kernel/shared/require.rb | 10 | ||||
| -rw-r--r-- | spec/ruby/fixtures/code/concurrent_require_fixture.rb | 1 | ||||
| -rw-r--r-- | test/ruby/test_require.rb | 3 | ||||
| -rw-r--r-- | thread.c | 11 |
6 files changed, 4 insertions, 25 deletions
diff --git a/internal/thread.h b/internal/thread.h index c3e54de683..6394f88d34 100644 --- a/internal/thread.h +++ b/internal/thread.h @@ -29,7 +29,6 @@ VALUE rb_get_coverages(void); int rb_get_coverage_mode(void); VALUE rb_default_coverage(int); VALUE rb_thread_shield_new(void); -bool rb_thread_shield_owned(VALUE self); VALUE rb_thread_shield_wait(VALUE self); VALUE rb_thread_shield_release(VALUE self); VALUE rb_thread_shield_destroy(VALUE self); @@ -850,8 +850,7 @@ load_lock(rb_vm_t *vm, const char *ftptr, bool warn) st_insert(loading_tbl, (st_data_t)ftptr, data); return (char *)ftptr; } - - if (warn && rb_thread_shield_owned((VALUE)data)) { + if (warn) { VALUE warning = rb_warning_string("loading in progress, circular require considered harmful - %s", ftptr); rb_backtrace_each(rb_str_append, warning); rb_warning("%"PRIsVALUE, warning); diff --git a/spec/ruby/core/kernel/shared/require.rb b/spec/ruby/core/kernel/shared/require.rb index c629b44389..666ca15e11 100644 --- a/spec/ruby/core/kernel/shared/require.rb +++ b/spec/ruby/core/kernel/shared/require.rb @@ -237,16 +237,6 @@ describe :kernel_require, shared: true do }.should complain(/circular require considered harmful/, verbose: true) ScratchPad.recorded.should == [:loaded] end - - ruby_bug "#17340", ''...'3.3' do - it "loads a file concurrently" do - path = File.expand_path "concurrent_require_fixture.rb", CODE_LOADING_DIR - ScratchPad.record(@object) - -> { - @object.require(path) - }.should_not complain(/circular require considered harmful/, verbose: true) - end - end end describe "(non-extensioned path)" do diff --git a/spec/ruby/fixtures/code/concurrent_require_fixture.rb b/spec/ruby/fixtures/code/concurrent_require_fixture.rb deleted file mode 100644 index fbb036214b..0000000000 --- a/spec/ruby/fixtures/code/concurrent_require_fixture.rb +++ /dev/null @@ -1 +0,0 @@ -Thread.new { ScratchPad.recorded.require(__FILE__) }.join(0.1) diff --git a/test/ruby/test_require.rb b/test/ruby/test_require.rb index e0cfc8c914..604ddf09d8 100644 --- a/test/ruby/test_require.rb +++ b/test/ruby/test_require.rb @@ -562,6 +562,9 @@ class TestRequire < Test::Unit::TestCase assert_equal(true, (t1_res ^ t2_res), bug5754 + " t1:#{t1_res} t2:#{t2_res}") assert_equal([:pre, :post], scratch, bug5754) + + assert_match(/circular require/, output) + assert_match(/in #{__method__}'$/o, output) } ensure $VERBOSE = verbose @@ -4920,17 +4920,6 @@ rb_thread_shield_new(void) return thread_shield; } -bool -rb_thread_shield_owned(VALUE self) -{ - VALUE mutex = GetThreadShieldPtr(self); - if (!mutex) return false; - - rb_mutex_t *m = mutex_ptr(mutex); - - return m->fiber == GET_EC()->fiber_ptr; -} - /* * Wait a thread shield. * |
