[Issue 6463] Segfault on writeln() from a Fiber

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Aug 17 09:04:16 PDT 2011


http://d.puremagic.com/issues/show_bug.cgi?id=6463


dawg at dawgfoto.de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |INVALID


--- Comment #5 from dawg at dawgfoto.de 2011-08-17 09:04:13 PDT ---
I can confirm this crash.
The reason though is not strictly a bug.
What you observe is a stack overflow due to big local buffers
in std.format.formatValue and even bigger ones in libc's vfprintf.
Fibers are allocated with a default stack size of one memory page (usually 4096
Bytes), but calling these two function already allocates >3KB stack space.

As a workaround you can increase the stack size in the Fiber constructor. I'm
afraid there is no easy solution to determine the smallest possible stack size
that is safe for all your code paths. In this example 8K => 'this() {
super(&run, 8192); }' will suffice.

martin

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list