This is something for kristjan to look into when he gets the time :)

On Tuesday, April 17, 2012, Gil Colgate wrote:

> Did this meet with anyone's approval?
>
> On Mon, Apr 9, 2012 at 11:43 AM, Gil Colgate 
> <[email protected]<javascript:_e({}, 'cvml', '[email protected]');>
> > wrote:
>
>> Here is a fix for the exception handler, I included just the .patch.
>>
>>     This corrects the problems with python having a different exception
>> the environment when the item is called again.
>>
>>     In the previous code, whenever a python tasklet was suspended the top
>> of the exception chain was saved. This very well could be a pointer into
>> code above the python stack into the main program. When the python tasklet
>> is called again, it's stack is put back *in the same place*, but the
>> environment above the stack *might be different*. This would cause the
>> exception chain to screw up in the part where the exception chain points
>> above the stack. This was the cause of the broken exception chain bug.
>>
>>
>>     If a tasklet has none of it's own exception chains, we will discover
>> this by reading the exception list and seeing that the address is above the
>> stack, so we don't need to save or restore it it.
>>
>>     If, on the other hand, the tasklet has a chain we save it. When
>> restoring it we look at the current chain and insert the chain from the
>> restored stack into it at the appropriate spot, so that the tasklet's chain
>> points correctly into it's parent's change.
>>
>>     Stack slicing: Stackless in general has a problem with stack slicing.
>> This code will work in when the stack is sliced (I tested it with 2K stack
>> slices and try-catches everywhere) but certain exceptions that belonged to
>> inactive stack slices will not be executed since they are not currently
>> linked into the chain.
>
>
>
_______________________________________________
Stackless mailing list
[email protected]
http://www.stackless.com/mailman/listinfo/stackless

Reply via email to