Skip to content
  • NARUSE, Yui's avatar
    53f6173c
    merge revision(s)... · 53f6173c
    NARUSE, Yui authored
    merge revision(s) 8ce2fb9b,3a0f6ce1: [Backport #19415]
    
    	Only emit circular dependency warning for owned thread shields [Bug
    	 #19415]
    
    	If multiple threads attemps to load the same file concurrently
    	it's not a circular dependency issue.
    
    	So we check that the existing ThreadShield is owner by the current
    	fiber before warning about circular dependencies.
    	---
    	 internal/thread.h                                     |  1 +
    	 load.c                                                |  3 ++-
    	 spec/ruby/core/kernel/shared/require.rb               | 11 +++++++++++
    	 spec/ruby/fixtures/code/concurrent_require_fixture.rb |  4 ++++
    	 test/ruby/test_require.rb                             |  3 ---
    	 thread.c                                              | 11 +++++++++++
    	 6 files changed, 29 insertions(+), 4 deletions(-)
    	 create mode 100644 spec/ruby/fixtures/code/concurrent_require_fixture.rb
    
    	Use Thread.pass until thread.stop? to wait for thread to block
    
    	[Bug #19415]
    
    	It should be more reliable
    	---
    	 spec/ruby/fixtures/code/concurrent_require_fixture.rb | 2 +-
    	 1 file changed, 1 insertion(+), 1 deletion(-)
    53f6173c
    merge revision(s)...
    NARUSE, Yui authored
    merge revision(s) 8ce2fb9b,3a0f6ce1: [Backport #19415]
    
    	Only emit circular dependency warning for owned thread shields [Bug
    	 #19415]
    
    	If multiple threads attemps to load the same file concurrently
    	it's not a circular dependency issue.
    
    	So we check that the existing ThreadShield is owner by the current
    	fiber before warning about circular dependencies.
    	---
    	 internal/thread.h                                     |  1 +
    	 load.c                                                |  3 ++-
    	 spec/ruby/core/kernel/shared/require.rb               | 11 +++++++++++
    	 spec/ruby/fixtures/code/concurrent_require_fixture.rb |  4 ++++
    	 test/ruby/test_require.rb                             |  3 ---
    	 thread.c                                              | 11 +++++++++++
    	 6 files changed, 29 insertions(+), 4 deletions(-)
    	 create mode 100644 spec/ruby/fixtures/code/concurrent_require_fixture.rb
    
    	Use Thread.pass until thread.stop? to wait for thread to block
    
    	[Bug #19415]
    
    	It should be more reliable
    	---
    	 spec/ruby/fixtures/code/concurrent_require_fixture.rb | 2 +-
    	 1 file changed, 1 insertion(+), 1 deletion(-)
Loading