[Vm-beginners] Re: [Vm-dev] Re: Where does process preemtion takes place?

Guillermo Polito guillermopolito at gmail.com
Mon Dec 10 18:20:17 UTC 2012


On Mon, Dec 10, 2012 at 6:55 PM, Bert Freudenberg <bert at freudenbergs.de>wrote:

>
> On 2012-12-10, at 18:44, Guillermo Polito <guillermopolito at gmail.com>
> wrote:
>
> > Nope, I mean preempting. When my process has the priority and is the
> active process, it gets preempted by higher priority processes. But my
> process does not make any #yield.
>
> Okay. This still happens in checkForInterrupts, which gets called on a
> backwards jump (like in your while loop, see #longUnconditionalJump) and on
> various other occasions, like on message sends.
>

Great! Thank you very much!!


>
> - Bert -
>
>
> > On Mon, Dec 10, 2012 at 5:21 PM, Bert Freudenberg <bert at freudenbergs.de>
> wrote:
> >
> >
> > On 2012-12-10, at 16:39, Guillermo Polito <guillermopolito at gmail.com>
> wrote:
> >
> > > But somehow if I run
> > >
> > > [ [true] whileTrue: [ Transcript show: 'asd'; cr.] ] fork.
> > >
> > > It gets preempted while it is running, and It does not make any
> yield...
> >
> > You did not ask about user interrupt handling specifically before.
> "Preempting" means any suspending of a lower-priority process by a
> higher-priority one.
> >
> > Pressing the interrupt key sets the interruptPending flag, which signals
> TheInterruptSemaphore (see checkForInterrupts). This resumes the interrupt
> watcher process.
> >
> > - Bert -
> >
> > >
> > > On Mon, Dec 10, 2012 at 4:17 PM, Bert Freudenberg <
> bert at freudenbergs.de> wrote:
> > >
> > > On 2012-12-10, at 14:22, Guillermo Polito <guillermopolito at gmail.com>
> wrote:
> > >
> > > > Hi!
> > > >
> > > > I was looking at the process machinery in VMMaker and I can't find
> where the preemption of processes takes place...
> > > >
> > > > Can someone point me a place?
> > >
> > > It happens in #transferTo:. This is called whenever a process is
> resumed because a semaphore got signaled (in which case the process that
> was waiting on the semaphore is resumed) or if the process stops working
> because of a wait / yield / suspend call (in which case
> #wakeHighestPriority determines the next process).
> > >
> > > - Bert -
> > >
> > > PS: no need to send a mail to both vm-dev and vm-beginners :)
> > >
> > > _______________________________________________
> > > VM-beginners mailing list
> > > VM-beginners at lists.squeakfoundation.org
> > > http://lists.squeakfoundation.org/mailman/listinfo/vm-beginners
> > >
> >
> >
> >
> > _______________________________________________
> > VM-beginners mailing list
> > VM-beginners at lists.squeakfoundation.org
> > http://lists.squeakfoundation.org/mailman/listinfo/vm-beginners
>
> _______________________________________________
> VM-beginners mailing list
> VM-beginners at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/vm-beginners
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20121210/b2b7494a/attachment-0001.htm


More information about the Vm-dev mailing list