]> gitweb.factorcode.org Git - factor.git/commitdiff
VM: add enable-ctrl-break and disable-ctrl-break primitives
authorAlexander Iljin <ajsoft@yandex.ru>
Wed, 15 Jun 2016 14:12:13 +0000 (17:12 +0300)
committerJohn Benediktsson <mrjbq7@gmail.com>
Tue, 1 Nov 2016 23:53:00 +0000 (16:53 -0700)
These are for the Listener to wrap around user-supplied quotations. Nesting
is not supported at the moment.

basis/bootstrap/image/primitives/primitives.factor
vm/primitives.hpp
vm/vm.hpp

index 86d59932fe1db3eacc324c1a4ec1a6aeffb7b3cc..aaa5cdaeb9e8ff2471bf431eb0a81f6a308b9002 100644 (file)
@@ -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 }
         }
     }
index b31c9141b9083c8d7297595895b03a42d627e185..03a76929bb62f079c0262e0b466a74ddc4475a1b 100644 (file)
@@ -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)             \
index 900ca98dec419abc321348e492b38b37d34d5e7d..df45b83d65b12919f08dc4a4a783d01241f52d5b 100644 (file)
--- 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