diff options
| author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2025-04-25 11:15:37 +0900 |
|---|---|---|
| committer | Nobuyoshi Nakada <nobu.nakada@gmail.com> | 2025-06-23 20:03:48 +0900 |
| commit | af6b98f7a25670cb569f6da59904b3c05482b16e (patch) | |
| tree | 572e427f5424f20ef548598e7f94942e61957158 /internal | |
| parent | c6dd07d66fa469d963d3771e001d45c462f413e3 (diff) | |
Make the critical level an enum
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/error.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/internal/error.h b/internal/error.h index 5d53f96b8e..de189698b8 100644 --- a/internal/error.h +++ b/internal/error.h @@ -241,4 +241,11 @@ rb_typeddata_is_instance_of_inline(VALUE obj, const rb_data_type_t *data_type) return RB_TYPE_P(obj, T_DATA) && RTYPEDDATA_P(obj) && (RTYPEDDATA_TYPE(obj) == data_type); } +typedef enum { + rb_stack_overflow_prevention = 0, // VM stack overflow or about to machine stack overflow + rb_stack_overflow_signal = 1, // machine stack overflow but may be recoverable + rb_stack_overflow_fatal = 2, // fatal machine stack overflow +} ruby_stack_overflow_critical_level; +NORETURN(void rb_ec_stack_overflow(struct rb_execution_context_struct *ec, ruby_stack_overflow_critical_level crit)); + #endif /* INTERNAL_ERROR_H */ |
