view libgui/src/octave-main-thread.h @ 16432:fe4cd846c3e7

separate octave interpreter thread creation from execution * main-window.cc (main_window::construct): Call octave_qt_link::execute_interpreter after all signal connections are made. * libgui/src/module.mk (octave_gui_MOC): Remove src/moc-octave-main-thread.cc from the list. * octave-main-thread.h, octave-main-thread.cc (octave_main_thread::execute_interpreter): New function. Call start. (octave_main_thread::ready): Delete signal and all uses. * octave_qt_link.h, octave_qt_link.cc (octave_qt_link::octave_qt_link): Don't call start for _main_thread. (octave_qt_link::execute_interpreter): New function.
author John W. Eaton <jwe@octave.org>
date Thu, 04 Apr 2013 13:27:21 -0400
parents 70032fc70bee
children d63878346099
line wrap: on
line source

/*

Copyright (C) 2013 John W. Eaton
Copyright (C) 2011-2012 Jacob Dawid

This file is part of Octave.

Octave is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 3 of the License, or (at your
option) any later version.

Octave is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with Octave; see the file COPYING.  If not, see
<http://www.gnu.org/licenses/>.

*/

#ifndef OCTAVEMAINTHREAD_H
#define OCTAVEMAINTHREAD_H

#include <QThread>

/**
  * \class octave_main
  * \brief This class represents a thread just running octave_main.
  * \author Jacob Dawid
  */
class octave_main_thread : public QThread
{
public:
  // Create a new thread for running the octave interpreter.
  octave_main_thread (void) : QThread () { }

  // Start the thread and initialize and execute the octave
  // interpreter.
  void execute_interpreter (void);

protected:
  // Avoid exec.  Run the octave interpreter in the new thread.
  void run (void);
};

#endif // OCTAVEMAINTHREAD_H