2010/5/10 Mariano Martinez Peck
<marianopeck@gmail.com>
2010/5/10 Andrei Stebakov
<lispercat@gmail.com>
I just started to use Pharo 1.0. So please bear
with me since I may not fully understand the full concept of the IDE.
Sometimes the whole IDE freezes indefinitely.
Welcome ! we hope you enjoy ;)
So questions:
1) Looks like evaluating anything from
the Workspace freezes the whole UI for the time of execution. Is it a bug or
a feature?
More or less. Pharo has a green thread implementation. I will tell
you what I understand. Green threads means, there is only ONE OS thread, and
then, internally (in Smalltalk) there exists their own threads, scheduler,
priorities, etc. The UI is just a process that is running, with a certain
priority. Go to the world menu, then "Tools" -> "Process Browser". There
you will see all the current processes with their priorities. You can notice
the UI process.
But you must agree that it still looks fishy when your whole UI blocks when
you execute something lengthy (like new package install)...
Well, if the
majority of Pharo users think that it's OK who am I to argue?
;)
So...whatever you do here, it will be done inside that process. If
you do normal things, then yes, I guess the UI freezes. However, you way want
to launch another thread to do what you want and with a lower priority than
the UI.
Do this test: open a workspace and a transcript. In the
workspace, evaluate:
[ 1000 timesRepeat: [Transcript show: 'mariano';
cr] ] forkAt: Processor userBackgroundPriority
there, you will see that
you are able to use the ide, while the block of writing to Transcript is
working "at the same time".
Here the most important message is
forkAt: . fork just fork the block with the standard
priority ("Processor activePriority"). If you want to specify the priority,
you have to use forkAt:
If it's the way to go, shouldn't we have a "special non-blocking" Workspace
which does exactly this (or have an option to run your Workspace command with a
background priority)?
2) Sometimes executing something freezes the UI
indefinitely. Is there a way to cancel the operation (other than restarting
the image)?
Strangely in my case the IDE froze on evaluating HTTPSocket
httpGet: 'http://www.pharo-project.org/home'
Yes, Sockets are an example where sometimes they block the whole
image. Are you behind a proxy ? do you have a timeout error after a while
?
I have just tested and it also freezes for me in Mac OS. I have no idea.
Maybe other can help.
Great! Alt-. works.
_______________________________________________
Pharo-project
mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project