« Return to Thread: Yet another GUI releated thought

Yet another GUI releated thought

by John W. Eaton :: Rate this Message:

Reply to Author | View in Thread

On  7-May-2008, Søren Hauberg wrote:

|   I'm still not convinced that it is necessary to make Octave thread
| safe or similar complicated things to provide a graphical interface to
| Octave. I don't really understand the input handling in Octave, so this
| has been developed in a "Hmmm, I wonder what happens if I press this
| button..." style.
|   What I have done is the following:
| In 'src/input.cc' I have added:
|
|   // TRUE if the GUI is being used
|   bool using_gui = true;
|
| Then later (same file) I have changed the function 'gnu_readline' so it
| reads
|
|   if (!using_gui)
|     retval = command_editor::readline (s, eof);
|   else
|     retval = GUI::readline (s, eof);
|
| This is probably the wrong place to do this, but it seems to work
| (haven't tested much, though). The function 'GUI::readline' returns when
| the user pressed Return in the GUI. The GUI is being started in
| 'octave_main' in 'src/octave.cc' in a separate thread.

If the GUI runs in a separate thread and Octave is not thread safe,
then how do you make the GUI responsive while Octave is off doing some
calculation?

|   Using this approach the GUI supports partial statements. It does not
| support tab-completion and history searching, and similar. Such things
| will have to be reimplemented in the GUI. I don't think that's much work
| though. Are there any issues with this approach that I'm missing?

Right, so you want to reimplement all the features of GNU readline in
your GUI::readline function?

jwe


 « Return to Thread: Yet another GUI releated thought