1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/-ext-
nagachika 949af69408 merge revision(s) 5680c38c75aeb5cbd219aafa8eb48c315f287d97,f5d20411386ff2552ff27661387ddc4bae1ebc30: [Backport #17573]
Use valid `ec` for postponed job.

	Postponed job can be registered from non-Ruby thread, which means
	`ec` in TLS can be NULL. In this case, use main thread's `ec` instead.

	See https://github.com/ruby/ruby/pull/4108
	and https://github.com/ruby/ruby/pull/4336
	---
	 vm_trace.c | 16 ++++++++++++----
	 1 file changed, 12 insertions(+), 4 deletions(-)

	Avoid assert failure when NULL EC is expected

	After 5680c38c75, postponed job APIs now
	expect to be called on native threads not managed by Ruby and handles
	getting a NULL execution context. However, in debug builds the change
	runs into an assertion failure with GET_EC() which asserts that EC is
	non-NULL. Avoid the assertion failure by passing `false` for `expect_ec`
	instead as the intention is to handle when there is no EC.

	Add a test from John Crepezzi and John Hawthorn to exercise this
	situation.

	See GH-4108
	See GH-5094

	[Bug #17573]

	Co-authored-by: John Hawthorn <john@hawthorn.email>
	Co-authored-by: John Crepezzi <john.crepezzi@gmail.com>
	---
	 ext/-test-/postponed_job/postponed_job.c       | 31 ++++++++++++++++++++++++++
	 test/-ext-/postponed_job/test_postponed_job.rb |  7 ++++++
	 vm_trace.c                                     |  2 +-
	 3 files changed, 39 insertions(+), 1 deletion(-)
2021-11-23 14:52:30 +09:00
..
arith_seq
array merge revision(s) cd4f5b13228879d954fa97b6aa479c4a5ef4fb0a,8db269edb3550a85dfab9b193ea115ca36912ced,ab63f6d8543903f177c46634f38e5428655f003b: [Backport #18140] 2021-09-05 12:19:53 +09:00
bignum
bug_reporter Guard all accesses to RubyVM::MJIT with defined?(RubyVM::MJIT) && 2020-12-04 16:45:54 +01:00
class
debug vm_backtrace.c: let rb_profile_frames show cfunc frames 2020-07-28 13:18:08 +09:00
exception
file
float
funcall
gvl
hash
integer
iseq_load
iter
load
marshal
method
num2int
path_to_class
popen_deadlock
postponed_job merge revision(s) 5680c38c75aeb5cbd219aafa8eb48c315f287d97,f5d20411386ff2552ff27661387ddc4bae1ebc30: [Backport #17573] 2021-11-23 14:52:30 +09:00
proc
rational
st
string merge revision(s) 391abc543cea118a9cd7d6310acadbfa352668ef,e86c1f6fc53433ef5c82ed2b7a4cc9a12c153e4c,f6539202c52a051a4e6946a318a1d9cd29002990: [Backport #12052] 2021-07-18 11:19:13 +09:00
struct
symbol Remove the uninitialized instance variable verbose mode warning 2020-12-10 10:16:05 -08:00
thread_fd_close
time
tracepoint keep proc on the stack so it does not move 2020-10-16 11:28:52 -07:00
typeddata
vm
wait_for_single_fd
win32
test_bug-3571.rb
test_bug-5832.rb
test_bug-14834.rb
test_enumerator_kw.rb
test_notimplement.rb
test_printf.rb
test_random.rb Added get_real interface 2020-09-07 20:08:01 +09:00
test_recursion.rb
test_scan_args.rb