1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/ext/-test-
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/extract
array add dependency for ext/-test-/array/concat/to_ary_conact.c 2021-09-05 13:49:07 +09:00
bignum
bug-3571
bug-5832
bug-14834
bug_reporter
class
cxxanyargs
debug
dln/empty
enumerator_kw
exception
fatal
file
float
funcall
gvl/call_without_gvl
hash
integer
iseq_load
iter
load
marshal
memory_status
memory_view [memory_view] Make some rb_memroy_view_t members const 2020-12-23 09:24:55 +09:00
method
notimplement
num2int
path_to_class
popen_deadlock
postponed_job merge revision(s) 5680c38c75aeb5cbd219aafa8eb48c315f287d97,f5d20411386ff2552ff27661387ddc4bae1ebc30: [Backport #17573] 2021-11-23 14:52:30 +09:00
printf
proc
random
rational
rb_call_super_kw
recursion
regexp
RUBY_ALIGNOF Protoized old pre-ANSI K&R style definitions 2020-12-05 14:57:31 +09:00
scan_args
st Removed rb_cData entity 2020-12-22 02:51:49 +09:00
string merge revision(s) 391abc543cea118a9cd7d6310acadbfa352668ef,e86c1f6fc53433ef5c82ed2b7a4cc9a12c153e4c,f6539202c52a051a4e6946a318a1d9cd29002990: [Backport #12052] 2021-07-18 11:19:13 +09:00
struct
symbol
thread_fd_close
time
tracepoint
typeddata Removed rb_cData entity 2020-12-22 02:51:49 +09:00
vm
wait_for_single_fd
win32
auto_ext.rb