Windows: Throwing Exceptions from Fibers in D2.059: Access Violation

David Nadlinger see at klickverbot.at
Thu Apr 19 08:40:26 PDT 2012


On Thursday, 19 April 2012 at 01:32:34 UTC, Andrew Lauritzen 
wrote:
>> The x32 Windows code should be pretty well tested.  If this is 
>> using the x64 code though, that's all quite new.  I'll give 
>> this a try when I find some time, but can't suggest a 
>> workaround offhand.  It almost sounds alignment-related, which 
>> could be tricky.
>
> This is using the x86 (32-bit) code, so I'm not sure what could 
> be going wrong. Is it well-tested on Windows too? Seems like 
> something about the interaction between the fiber context/stack 
> and SEH is not happy.

Gah, not this again. *sigh*

It is semi-well tested as in that I'm relying on it for async I/O 
in Thrift, and its test suite now passes on every Windows box I 
tested.

If you can spare the time, it would be great if you cloud 
download DMD 2.057 and try if the test case also fails with it on 
your setup. The reason is that I changed the way the top of the 
SEH chain is set up for fibers in 2.058 to make it work on 
Windows Server 2008/2008 R2, and maybe I inadvertently screwed up 
the stack alignment/… (you have to reverse-engineer the gritty 
details of SEH as you are going, and you never know whether you 
really »got it right« in terms of Microsoft's internal specs).

David


More information about the Digitalmars-d mailing list