path: root/test/-ext-
diff options
authorKoichi Sasada <>2019-11-29 17:39:06 +0900
committerKoichi Sasada <>2019-11-29 17:47:02 +0900
commit36da0b3da1aed77e0dffb3f54038f01ff574972b (patch)
treec314267b99a363bdd97e8025bbc586d2be8c333c /test/-ext-
parentc4686b92359d298f281f3943ba205858e183e7af (diff)
check interrupts at each frame pop timing.
Asynchronous events such as signal trap, finalization timing, thread switching and so on are managed by "interrupt_flag". Ruby's threads check this flag periodically and if a thread does not check this flag, above events doesn't happen. This checking is CHECK_INTS() (related) macro and it is placed at some places (laeve instruction and so on). However, at the end of C methods, C blocks (IMEMO_IFUNC) etc there are no checking and it can introduce uninterruptible thread. To modify this situation, we decide to place CHECK_INTS() at vm_pop_frame(). It increases interrupt checking points. [Bug #16366] This patch can introduce unexpected events...
Diffstat (limited to 'test/-ext-')
1 files changed, 2 insertions, 2 deletions
diff --git a/test/-ext-/postponed_job/test_postponed_job.rb b/test/-ext-/postponed_job/test_postponed_job.rb
index 978b728ef7..7dc28776d0 100644
--- a/test/-ext-/postponed_job/test_postponed_job.rb
+++ b/test/-ext-/postponed_job/test_postponed_job.rb
@@ -19,8 +19,8 @@ class TestPostponed_job < Test::Unit::TestCase
- assert_match( /postponed_job_call_direct_wrapper/, direct.join)
- assert_not_match( /postponed_job_register_wrapper/, registered.join)
+ assert_equal([0], direct)
+ assert_equal([3], registered)
Bug.postponed_job_register_one(ary = [])
assert_equal [1], ary