diff libgui/src/octave-interpreter.cc @ 17922:b5bf26a054bd

interrupt interpreter thread in GUI instead of calling "raise (SIGINT)" * thread-manager.h, thread-manager.cc: New files. * libgui/src/module.mk: Update file lists. * octave-gui.cc (octave_start_gui): Block SIGINT at startup. * octave-interpreter.h, octave-interpreter.cc (octave_interpreter::thread_manager): New data member. (octave_interpreter::execute): Register current thread and unblock interrupt signal. (octave_interpreter::interrupt): Call thread_manager::interrupt instead of calling ::raising (SIGINT).
author John W. Eaton <jwe@octave.org>
date Tue, 12 Nov 2013 19:24:49 -0500
parents libgui/src/octave-main-thread.cc@a38cee8f0a9b
children 024940bd5b77
line wrap: on
line diff
--- a/libgui/src/octave-interpreter.cc
+++ b/libgui/src/octave-interpreter.cc
@@ -36,6 +36,10 @@
 void
 octave_interpreter::execute (void)
 {
+  thread_manager.register_current_thread ();
+
+  octave_thread_manager::unblock_interrupt_signal ();
+
   octave_initialize_interpreter (octave_cmdline_argc, octave_cmdline_argv,
                                  octave_embedded);
 
@@ -45,5 +49,5 @@
 void
 octave_interpreter::interrupt (void)
 {
-  ::raise (SIGINT);
+  thread_manager.interrupt ();
 }