|
From: | Jacob Dawid |
Subject: | Re: Forked off GUI |
Date: | Fri, 2 Nov 2012 09:06:17 +0100 |
I have been inspecting the current GUI. I think one of big issues for
the stability of the GUI is how events are managed. Currently, there
is a semaphore that avoids accessing the events queue from two
different threads. However, all the events are processed without any
kind of semaphore or lock.
Thus, if we take the workspace view as an
example, if for some reason the workspace takes a little longer to be
updated, the next event updating the workspace view will try to update
it while it's still being updated. That also happens with the commands
history view.
A semaphore in all the code updating any of the windows
would avoid some stability problems. Those semaphores would be
additional to the current semaphores avoiding concurrent access to the
events queue.
Also, the model should be changed to avoid refreshing the workspace
view if the model has not changed (currently, it always refreshes
every 0.5 seconds).
I think these two changes are the main differences that could be
useful to improve the stability of the GUI. Other differences are
merely cosmetic, or do not impact on stability (I have finished the
GUI for the debugger for instance, and it is now functional).
I have done those two changes in my code, and after an inspection of
the current GUI code, I think I could easily integrate that. Or at
least, helping someone else integrating that using my code as a base.
[Prev in Thread] | Current Thread | [Next in Thread] |