Issue #6575 has been updated by mame (Yusuke Endoh).
Status changed from Feedback to Rejected
Assignee set to ko1 (Koichi Sasada)
This is not a bug. So I'm closing this ticket.
Because Thread#kill should not be rescue'd so easily, it does throw a special exception which has no class, to make it hard to rescue.
Incidentally, the value 8 means INT2FIX(TAG_FATAL) which is set in rb_threadptr_to_kill:
1690 static void
1691 rb_threadptr_to_kill(rb_thread_t *th)
1692 {
1693 rb_threadptr_async_errinfo_clear(th);
1694 th->status = THREAD_TO_KILL;
1695 th->errinfo = INT2FIX(TAG_FATAL);
1696 TH_JUMP_TAG(th, TAG_FATAL);
1697 }
If you want to know the detailed rationale, please ask ko1 in the mailing list.
If you wish, please open another feature request with the concrete motivation.
--
Yusuke Endoh <
ma...@tsg.ne.jp>
----------------------------------------
Bug #6575: Thread#kill sets rb_errinfo() to Fixnum 8 after rb_protect(function, data, &error_tag)
https://bugs.ruby-lang.org/issues/6575#change-32488
Author: ibc (Iñaki Baz Castillo)
Status: Rejected
Priority: Normal
Assignee: ko1 (Koichi Sasada)