# HG changeset patch # User Jacob Dawid # Date 1311197539 -7200 # Node ID 8b116446a904b5d591fa4a3329ec67aed6382966 # Parent 3ec73e6b8cbe8b7b78f5a9a1a8b70d827c485584 Fixed race condition. diff -r 3ec73e6b8cbe -r 8b116446a904 gui/src/MainWindow.cpp --- a/gui/src/MainWindow.cpp Wed Jul 20 22:53:46 2011 +0200 +++ b/gui/src/MainWindow.cpp Wed Jul 20 23:32:19 2011 +0200 @@ -280,6 +280,6 @@ m_octaveMainThread->start (); m_octaveCallbackThread = new OctaveCallbackThread (this, this); - m_octaveCallbackThread->start (); + connect (m_octaveMainThread, SIGNAL(ready()), m_octaveCallbackThread, SLOT(start())); reportStatusMessage (tr ("Established link to Octave.")); } diff -r 3ec73e6b8cbe -r 8b116446a904 gui/src/MainWindow.h --- a/gui/src/MainWindow.h Wed Jul 20 22:53:46 2011 +0200 +++ b/gui/src/MainWindow.h Wed Jul 20 23:32:19 2011 +0200 @@ -117,16 +117,22 @@ class OctaveMainThread:public QThread { -Q_OBJECT public: +Q_OBJECT +public: OctaveMainThread (QObject * parent):QThread (parent) { } + +signals: + void ready(); + protected: void run () { int argc = 3; const char *argv[] = { "octave", "--interactive", "--line-editing" }; octave_main (argc, (char **) argv, 1); + emit ready(); main_loop (); clean_up_and_exit (0); } diff -r 3ec73e6b8cbe -r 8b116446a904 gui/src/OctaveLink.cpp --- a/gui/src/OctaveLink.cpp Wed Jul 20 22:53:46 2011 +0200 +++ b/gui/src/OctaveLink.cpp Wed Jul 20 23:32:19 2011 +0200 @@ -132,9 +132,6 @@ int serverHistoryLength = command_history::length (); // If were behind the server, iterate through all new entries and add them to our history. - - // TODO: command_history::get_entry crashes, find out why. - /* if (clientHistoryLength < serverHistoryLength) { for (int i = clientHistoryLength; i < serverHistoryLength; i++) @@ -142,7 +139,7 @@ m_historyModel->insertRow (0); m_historyModel->setData (m_historyModel->index (0), QString (command_history::get_entry (i).c_str ())); } - }*/ + } } QStringListModel *