Multiple processes using #nextPutAll:

nicolas cellier ncellier at ifrance.com
Sat May 26 20:51:15 UTC 2007


So Damien just has to fork a process at higher priority first, that will 
repeatedely wake up.

[100 timesRepeat:  [(Delay forMilliseconds: 50) wait]] forkAtPriotity: 
etc...

If individual nextPutAll: process last longer than 50ms, then he will 
get what he wanted to see. Otherwise, reduce the delay.

But, question: what is the minimum delay (delay resolution)?

Nicolas

Bert Freudenberg a écrit :
> 
> On May 26, 2007, at 22:00 , J J wrote:
> 
>>> From: Bert Freudenberg <bert at freudenbergs.de>
>>> Reply-To: The general-purpose Squeak developers 
>>> list<squeak-dev at lists.squeakfoundation.org>
>>> To: The general-purpose Squeak developers 
>>> list<squeak-dev at lists.squeakfoundation.org>
>>> Subject: Re: Multiple processes using #nextPutAll:
>>> Date: Sat, 26 May 2007 21:55:10 +0200
>>>
>>> Perhaps we're talking past each other. Anyway, this shouldn't matter  
>>> for the problem at hand.
>>
>> Or I'm not being clear enough. :)
>>
>>>> Yes, much like how modern OS'es work.  It's just that I was under  
>>>> the impression that once the current process is interrupted that  
>>>> another at that same priority would be given a chance to run.
>>>
>>> Yes, that's what I wrote.
>>
>> What I meant here is (and why this is relevant for the problem at hand):
>>
>> If he forks the first one it is at some priority.  Then he forks the 
>> next at the same priority.  If the first one takes enough time 
>> (presumably around 40 ms) it will get preempted by the UI handlers, 
>> timer handlers or something.  Now, when the higher priority processes 
>> are finished if it goes back to the one it was running before (i.e. 
>> the first one that was forked) then yes, you're right that it wont 
>> matter.  But if it picks another from that list then he can cause the 
>> second thread to run while the first is still in the loop.  This is 
>> what I was trying to say. :)
> 
> Okay - I was trying to say that it will indeed pick the next process, 
> not the first one.
> 
> Btw, if you just #fork it will run at the same priority as the current 
> process (which will be the UI process if yiu do this in a workspace). 
> And at least in the default image there is no higher-priority process 
> that loops at 40ms intervals. There is an "event tickler" at 500ms (see 
> your process browser).
> 
> - Bert -
> 
> 
> 
> 




More information about the Squeak-dev mailing list