view gui/src/backend/OctaveCallbackThread.cpp @ 14599:97cb9286919c gui

Cleaned up code. * .hgsub: Removed IRC Widget. * gui.pro: Removed dependency on IRC Widget and removed files. * class FileEditorMdiSubWindow: Renamed to FileEditor. File editor windows are now independent windows, thus removed the extra close button. * MainWindow: Removed MDI Area and replaced it with the terminal instead. * BrowserWidget: Removed browser widget. * SettingsDialog: Rearranged settings for the editor, removed tab for shortcuts. * OctaveCallbackThread: Raised update intervals from 0,5s to 1s. * OctaveLink: Replaced signals names for triggering updates on the symbol table. * WorkspaceView: Adjusted connect statements to fit the new signal names.
author Jacob Dawid <jacob.dawid@googlemail.com>
date Mon, 07 May 2012 00:53:54 +0200
parents faece6b2ab90
children
line wrap: on
line source

/* OctaveGUI - A graphical user interface for Octave
 * Copyright (C) 2011 Jacob Dawid (jacob.dawid@googlemail.com)
 *
 * This program 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.
 *
 * This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
 */

#include "OctaveCallbackThread.h"
#include "MainWindow.h"

OctaveCallbackThread::OctaveCallbackThread (QObject * parent)
  : QThread (parent)
{
  m_runningSemaphore = new QSemaphore(1);
  m_running = true;
}

void
OctaveCallbackThread::halt ()
{
  m_runningSemaphore->acquire ();
  m_running = false;
  m_runningSemaphore->release ();
}

void
OctaveCallbackThread::run ()
{
  bool running = true;
  while (running)
    {
      OctaveLink::instance ()->triggerUpdateSymbolTable ();
      OctaveLink::instance ()->triggerUpdateHistoryModel ();
      usleep (1000000);

      m_runningSemaphore->acquire ();
      running = m_running;
      m_runningSemaphore->release ();
    }
}