ruby/internal
nagachika 26b3f0b6a9 merge revision(s) 8ce2fb9bbbaea14737c84385b1573f743a30f773,3a0f6ce1d31eefd8af01b50f3632a64d64e8f8c1: [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(-)
2023-03-21 15:32:44 +09:00
..
array.h Add comments about special runtime routines YJIT calls 2021-10-20 18:19:43 -04:00
bignum.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
bits.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
class.h Make RCLASS_EXT(c)->subclasses a doubly linked list 2021-11-22 09:11:04 -05:00
compar.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
compile.h RubyVM.keep_script_lines 2021-10-21 16:17:39 +09:00
compilers.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
complex.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
cont.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
dir.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
enc.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
encoding.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
enum.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
enumerator.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
error.h suppress GCC's -Wsuggest-attribute=format 2021-09-10 20:00:06 +09:00
eval.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
file.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
fixnum.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
gc.h Speed up Ractors for Variable Width Allocation 2021-11-23 10:51:27 -05:00
hash.h Restore Hash#compare_by_identity mode [Bug #18171] 2021-10-02 11:43:35 +09:00
imemo.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
inits.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
io.h Move some function declaration to internal/io.h 2021-09-28 18:08:08 +13:00
load.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
loadpath.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
math.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
missing.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
numeric.h Embed bare double if sizeof(double) == sizeof(VALUE) 2021-10-27 02:05:06 +09:00
object.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
parse.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
proc.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
process.h process.c: Add Process._fork (#5017) 2021-10-25 20:47:19 +09:00
random.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
range.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
rational.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
re.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
sanitizers.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
serial.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
signal.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
static_assert.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
string.h Add comments about special runtime routines YJIT calls 2021-10-20 18:19:43 -04:00
struct.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
symbol.h Assign temporary ID to anonymous ID [Bug #18250] 2021-11-23 21:03:19 +09:00
thread.h merge revision(s) 8ce2fb9bbbaea14737c84385b1573f743a30f773,3a0f6ce1d31eefd8af01b50f3632a64d64e8f8c1: [Backport #19415] 2023-03-21 15:32:44 +09:00
time.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
transcode.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
util.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
variable.h Extract yjit_force_iv_index and make it work when object is frozen 2021-10-20 18:19:43 -04:00
vm.h Make RubyVM::AbstractSyntaxTree.of raise for backtrace location in eval 2021-12-19 03:51:37 +09:00
warnings.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00