[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-smalltalk] Single stepping issue in the JIT
From: |
Paolo Bonzini |
Subject: |
Re: [Help-smalltalk] Single stepping issue in the JIT |
Date: |
Sat, 04 Jan 2014 18:13:39 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130923 Thunderbird/17.0.9 |
Il 04/01/2014 14:54, Holger Hans Peter Freyther ha scritto:
> On Sat, Jan 04, 2014 at 08:54:46AM +0100, Holger Hans Peter Freyther wrote:
>
>> oop1 = STACKTOP ();
>> suspend_process (oop1);
>> + if (oop1 == switch_to_process)
>> + printf("Suspended is switched to process.\n");
>> PRIM_SUCCEEDED;
>> }
>
> diff --git a/libgst/interp.c b/libgst/interp.c
> index 0a01361..ab67daf 100644
> --- a/libgst/interp.c
> +++ b/libgst/interp.c
> @@ -1794,7 +1794,8 @@ resume_process (OOP processOOP,
> {
> /* We're resuming a process with a *equal or higher* priority, so sleep
> the current one and activate the new one */
> - sleep_process (activeOOP);
> + if (active->myList != _gst_nil_oop)
> + sleep_process (activeOOP);
> activate_process (processOOP);
> }
> else
>
>
> this is my work-around. I have no idea if that is the right place and/if
> it is correct. The idea is that an already process will not be made runnable.
>
> The real question is probably how this code can be suspended and still be
> considered as the next process.
Yes, this looks like the right fix!
Paolo