[Stackless] Stackless status

Christian Tismer tismer at appliedbiometrics.com
Mon Oct 9 10:01:34 CEST 2000


Just van Rossum wrote:
> 
> At 10:10 PM -0400 08-10-2000, Gordon McMillan wrote:
> >What I've found is that an exception
> >that crosses a continuation-boundary produces a leak (at
> >least, that's my best deduction). If you catch the exception
> >within the continuation, all is fine; but if you let it cross back
> >into the guy that called the continuation, you're stuck. Seems
> >to me I discovered this by toying with generator-like patterns:
> >throwing an IndexError in the continuation, so the (caller of
> >the) caller would fall out of a for loop. That's with 1.1.

Didn't check Gordon's leak yet, but it sounds like there
might be something.

> This sounds very similar to what I've posted. (Can _anyone_ reproduce the
> leak in my script? Even with Chris' latest version it leaks, but Chris
> can't reproduce it.)
> 
> I've just tried to reproduce what you describe without the timeslice()
> function, and failed. Do you have a minimal example?

I also tried different timeslice times, downto zero, without
any effect. In principle, this is the expected behavior,
since I automatically lock when an exception happens. At least
it works this way on windows.
So here my question: Is there something MAC specific that I don't
know about? Do you know of any specific code in the core? I'm
absolutely not aware of this.
Is there something like profiling or tracing by default?

Especially: Does the MAC have a proper tstate?

ceval.c, line 1002ff:

    if (tstate->uthread_func 
          && !tstate->uthread_lock
          /* y2k0326 inhibit uthreads in an exception context */
          && !tstate->curexc_type) {
        int ticks = tstate->interp->checkinterval - tstate->ticker;
        int mt = tstate->uthread_ticker -= ticks;
        if (mt <= 0)
            HANDLE_INTERRUPT;
    }

Is it possible that tstate->curexc_type works differently on the
MAC, or even that I understand this thing the wrong way and
it does not always reliably tell me that an exception is
running?

ciao - chris

-- 
Christian Tismer             :^)   <mailto:tismer at appliedbiometrics.com>
Applied Biometrics GmbH      :     Have a break! Take a ride on Python's
Kaunstr. 26                  :    *Starship* http://starship.python.net
14163 Berlin                 :     PGP key -> http://wwwkeys.pgp.net
PGP Fingerprint       E182 71C7 1A9D 66E9 9D15  D3CC D4D7 93E2 1FAE F6DF
     where do you want to jump today?   http://www.stackless.com
_______________________________________________
Stackless mailing list
Stackless at starship.python.net
http://starship.python.net/mailman/listinfo/stackless



More information about the Stackless mailing list