Bill (and igor)

I would love to continue to remove Project from the image so the  
"spawnProcessIfThisIsUI:self activeProcess."
should probably find another host. Do you have an idea about the class  
that could be the natural place to define
such a method?
if so can you propose a change?

Stef


On Aug 16, 2009, at 5:57 AM, Schwab,Wilhelm K wrote:

> Sig, all,
>
> I have been preparing MC packages with classes and method designed  
> to soften the blow of moving much of my domain code to Pharo.  In  
> this case, I have some sends of ProcessorSchedler>>forkMainIfMain,  
> so I created that method.  Initially, I made it emtpy, and then  
> based on what you helpe me find, I tried
>
> ProcessorScheduler>>forkMainIfMain
>  Project spawnProcessIfThisIsUI:self activeProcess.
>
>
> The above gets called from something that then immediately waits on  
> a semaphore that is signalled by one of two threads.  One of the  
> threads waits on a timer, the other tries to evaluate a block;  
> creating a background worker thread that will run for a limited  
> time.  There is a test case that tries various combinations, some of  
> which should succeed and some should time out.  I have used these  
> things in production in Dolphin for some time.
>
> In Dolphin, #forkMainIfMain allows the UI to be responsive during  
> these tests, but trying the above in Pharo turns ugly.  There are  
> problems that appear to related to two UI processes - running short  
> of events or something like that.  The tests run for only a few  
> seconds, though I suppose I could try to allow enough time to look  
> around, but then I'm probably not the right person to do the looking  
> anyway.
>
> DUMB question: the argument to #spawnProcessIfThisIsUI: is named  
> suspendedProcess.  Do I need to ensure the process in question is  
> indeed suspended before entering the method?  If so, then I start  
> wondering how to get there from #forkMainIfMain, but it's a little  
> late for my brain to take on that question.
>
> One thing is certain: what I tried did not work.  There were errors  
> from the event loop and even some screen scarring.
>
> Bill
>
>
> -----Original Message-----
> From: [email protected] 
> [mailto:[email protected] 
> ] On Behalf Of Igor Stasenko
> Sent: Saturday, August 15, 2009 3:29 PM
> To: [email protected]
> Subject: Re: [Pharo-project] Analog to Dolphin's #forkMainIfMain?
>
> 2009/8/15 Schwab,Wilhelm K <[email protected]>:
>> Is there anything in Pharo that starts a new main thread to carry  
>> on for one that is about to get blocked?  It might be that Pharo  
>> does not need it, since sockets are serviced by the VM, where  
>> Dolphin (at least prior to overlapped calls) did the I/O through  
>> the event loop; if the main thread stopped, so did Windows event  
>> dispatching, and hence no socket I/O.
>>
> There is such thing.
> Try to explore the way how debugger handling this (when process you  
> want to debug is current UI process), or when you pressing interrupt  
> key.
>
> See Debugger>>openOn: process context: context label: title contents:
> contentsStringOrNil fullView: bool
>
> at 'Project spawnNewProcessIfThisIsUI: process'
>
>
>
>> Dolphin to some extent, and WindowBuilder to (IIRC) a large extent  
>> create modal loops in Smalltalk code.  I see a few references to  
>> such things in Pharo, but I'm fairly lost.  Where should I start  
>> reading and/or browsing?
>>
>> Bill
>>
>>
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [email protected]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
> _______________________________________________
> 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


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

Reply via email to