diff --git a/basis/bootstrap/image/primitives/primitives.factor b/basis/bootstrap/image/primitives/primitives.factor index 86d59932fe..aaa5cdaeb9 100644 --- a/basis/bootstrap/image/primitives/primitives.factor +++ b/basis/bootstrap/image/primitives/primitives.factor @@ -730,6 +730,8 @@ CONSTANT: all-primitives { "system" { { "(exit)" ( n -- * ) "exit" { integer } { } f } + { "disable-ctrl-break" ( -- ) "disable_ctrl_break" { } { } f } + { "enable-ctrl-break" ( -- ) "enable_ctrl_break" { } { } f } { "nano-count" ( -- ns ) "nano_count" { } { integer } make-flushable } } } diff --git a/vm/primitives.hpp b/vm/primitives.hpp index b31c9141b9..03a76929bb 100644 --- a/vm/primitives.hpp +++ b/vm/primitives.hpp @@ -15,9 +15,11 @@ namespace factor { _(check_datastack) _(clone) _(code_blocks) _(code_room) \ _(compact_gc) _(compute_identity_hashcode) _(context_object) \ _(context_object_for) _(current_callback) _(data_room) \ - _(datastack_for) _(die) _(disable_gc_events) _(dispatch_stats) \ + _(datastack_for) _(die) _(disable_ctrl_break) _(disable_gc_events) \ + _(dispatch_stats) \ _(displaced_alien) _(dlclose) _(dll_validp) _(dlopen) _(dlsym) \ - _(dlsym_raw) _(double_bits) _(enable_gc_events) _(existsp) _(exit) \ + _(dlsym_raw) _(double_bits) _(enable_ctrl_break) _(enable_gc_events) \ + _(existsp) _(exit) \ _(fclose) _(fflush) _(fgetc) _(fixnum_divint) _(fixnum_divmod) \ _(fixnum_shift) _(fixnum_to_bignum) _(fixnum_to_float) _(float_add) \ _(float_bits) _(float_divfloat) _(float_eq) _(float_greater) \ diff --git a/vm/vm.hpp b/vm/vm.hpp index 900ca98dec..df45b83d65 100644 --- a/vm/vm.hpp +++ b/vm/vm.hpp @@ -393,6 +393,8 @@ struct factor_vm { void factorbug_usage(bool advanced_p); void factorbug(); void primitive_die(); + void primitive_enable_ctrl_break(); + void primitive_disable_ctrl_break(); volatile bool stop_on_ctrl_break; // arrays