[Stackless] Crash after throwing C++ exception?

Richard Tew richard.m.tew at gmail.com
Mon Oct 30 09:01:43 CET 2006

On 10/30/06, Lloyd Weehuizen <lloyd at fusion.net.nz> wrote:
> Richard Tew wrote:
> > Hi Lloyd,
> >
> > Thanks for the reproducibility case.  If someone with the required
> > interest and skill with boost::python wants to step forward and have
> > a go at working out what is going wrong, I am happy to help out
> > to the degree which does not require me to install boost::python and
> > compile this myself.
> >
> > However, if I had to guess at the reason for this bug.  I would say
> > something soft switched and the watchdog code you are using does
> > not handle it appropriately.
> Thanks for the prompt response. I applied your suggestions and the crash
> does indeed go away. But my understanding of the _nr version of receive
> means it will only work for switching python code and any code with C
> stack frames will not be switched?
> If I don't use the _nr version the crash returns.
> Is there any way to get around this? As I was working under the
> assumption that a hard switching beNice and Sleep methods were possible?
> Could the thrown exception be preventing stackless from processing its
> UnwindTokens correctly?

If you do not use the _nr version, are you returning what it returns, either
in the BeNice or Sleep function?

As I understand it, the _nr doesn't guarantee that soft switching will be used,
but rather that it will be used if the situation allows it.  And the non _nr
calls do not guarantee that hard switching will be used, but rather that
it won't especially try for soft switching if it is not already doing so.

You still need to return what they return, in case soft switching is used.
And I am not clear whether you are, when you use the non _nr version.

Hope this helps,

Stackless mailing list
Stackless at stackless.com

More information about the Stackless mailing list