On Sat, 15 May 2010, Mariano Martinez Peck wrote:

On Sat, May 15, 2010 at 8:54 PM, Levente Uzonyi <[email protected]> wrote:

On Sat, 15 May 2010, Mariano Martinez Peck wrote:

 Hi folks. This is why I like writing in books/wikis, because I always
learn
:)
Now I writing in the book about the Interrupt Key and I come up with this
guy I was not even aware of: CPUWatcher. It seemss very cool and useful.
However, I am using it wrong, or there is too much dust on it.  I want to
ask if I am using it well before debugging and try to make it work.

As the class comment says, I tried to do this:

CPUWatcher startMonitoring.    "process period 20 seconds, sample rate 100
msec"

And then I evaluated in a workspace:

[ true ] whileTrue: [ 1+1 ]

It should stop that process when it is using 80% of the CPU, but it
doesn't.
The process is never stop and the image freeze. I then tried:

CPUWatcher startMonitoring.    "process period 20 seconds, sample rate 100
msec"
CPUWatcher current threshold: 0.3.    "change from 80% to 30%"

I have the same results...

any hints?


Your code doesn't have any message sends when executed, so it can't be
interrupted.


Hi Levente. Thanks for the answer, but I didn't understand. Which code do
you mean?

If you refer to:

[ true ] whileTrue: [ 1+1 ]

I am sending the message whileTrue: to BlockClosure and the message + to 1.
So, I don't understand.

In theory yes, but in practice no. Just look at the generated bytecode:

13 <71> pushConstant: true
14 <9D> jumpFalse: 21
15 <76> pushConstant: 1
16 <76> pushConstant: 1
17 <B0> send: +
18 <87> pop
19 <A3 F8> jumpTo: 13
21 <78> returnSelf

As you can see #whileTrue: totally disappeared, no message sends. There's a send for #+, but that's a B0 bytecode which will not do a real message send, because both the receiver and the argument is a SmallInteger.
Therefore your code won't send any messages.


Levente


Btw, you can turn CPUWatcher on from the Process Browser and see the CPU
usage of processes.


Yes, I tried this before but it happened the same....I tried to test it,
evaluating
[ true ] whileTrue: [ 1+1 ]  but it was not interrupted.

I also tried to click several times in the world but with no luck.

Thanks

Mariano



Levente


Cheers

Mariano


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project



_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to