Thread overview | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
May 25, 2014 [Issue 12800] Fibers are broken on Win64 | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=12800 Johannes Blume <jblume@jblume.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jblume@jblume.com --- Comment #1 from Johannes Blume <jblume@jblume.com> --- This should be fixed by https://github.com/D-Programming-Language/druntime/pull/809 . I didn't fix the related bug yet because the obvious solution of pushing all the floating-point registers on the stack more than doubles the cost of a context switch. -- |
May 25, 2014 [Issue 12800] Fibers are broken on Win64 | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=12800 --- Comment #2 from github-bugzilla@puremagic.com --- Commits pushed to master at https://github.com/D-Programming-Language/druntime https://github.com/D-Programming-Language/druntime/commit/02f4267adc9ab60a61aacc0aae4def9499c626ad fix Issue 12800 - Fibers are broken on Win64 Win64 version of the context switch used the wrong registers for parameters https://github.com/D-Programming-Language/druntime/commit/591b8d474c94161c749ee1800876e7f65ca0e634 Merge pull request #809 from jblume/master fix Issue 12800 - Fibers are broken on Win64 -- |
May 25, 2014 [Issue 12800] Fibers are broken on Win64 | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=12800 github-bugzilla@puremagic.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED -- |
June 10, 2014 [Issue 12800] Fibers are broken on Win64 | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=12800 --- Comment #3 from Sönke Ludwig <sludwig@outerproduct.org> --- It looks like there is still something wrong. The unit test for the FiberScheduler of the new std.concurrency additions crashes with an access violation inside Fiber.call(). https://github.com/D-Programming-Language/phobos/pull/1910 I didn't have a chance to investigate this deeper, yet. Reopening for now. -- |
September 22, 2014 [Issue 12800] Fibers are broken on Win64 | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=12800 Sönke Ludwig <sludwig@outerproduct.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|FIXED |--- --- Comment #4 from Sönke Ludwig <sludwig@outerproduct.org> --- A simple vibe.d application also crashes here because RAX is null: --- 00007FF7F0FA2E07 call fiber_switchContext (07FF7F0FC6790h) 00007FF7F0FA2E0C add rsp,20h 00007FF7F0FA2E10 mov rax,qword ptr [rsi+80h] 00007FF7F0FA2E17 mov rbx,qword ptr [rax+10h] <- RAX==0 --- This was the first `Fiber.call()` call of the program. -- |
September 22, 2014 [Issue 12800] Fibers are broken on Win64 | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=12800 --- Comment #5 from Sönke Ludwig <sludwig@outerproduct.org> --- Correction: It's the first call to yield() that crashes. --- import core.thread, std.stdio; void fun() { writeln("A"); Fiber.yield(); writeln("B"); } void main() { auto f = new Fiber(&fun); writeln("call.."); f.call(false); writeln("call again.."); f.call(false); writeln("exit"); } --- Output: call.. A (crash) -- |
November 07, 2014 [Issue 12800] Fibers are broken on Win64 | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=12800 Martin Nowak <code@dawg.eu> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |code@dawg.eu --- Comment #6 from Martin Nowak <code@dawg.eu> --- Looks like we're missing to save RSI and RDI. All the callee saved registers need to be stored on the fiber stack. http://msdn.microsoft.com/en-us/library/6t169e9c.aspx -- |
November 10, 2014 [Issue 12800] Fibers are broken on Win64 | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=12800 Martin Nowak <code@dawg.eu> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |pull --- Comment #7 from Martin Nowak <code@dawg.eu> --- https://github.com/D-Programming-Language/druntime/pull/1012 -- |
November 10, 2014 [Issue 12800] Fibers are broken on Win64 | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=12800 github-bugzilla@puremagic.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |RESOLVED Resolution|--- |FIXED -- |
November 10, 2014 [Issue 12800] Fibers are broken on Win64 | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=12800 --- Comment #8 from github-bugzilla@puremagic.com --- Commits pushed to master at https://github.com/D-Programming-Language/druntime https://github.com/D-Programming-Language/druntime/commit/fc887f3a41f850c266812b56a4cd770acef7b044 fix Issue 12800 - Fibers are broken on Win64 - save non-volatile registers RSI and RDI https://github.com/D-Programming-Language/druntime/commit/d30668171d145d9c31f47e47717d0787845ff58f Merge pull request #1012 from MartinNowak/fix12800 fix Issue 12800 - Fibers are broken on Win64 -- |
Copyright © 1999-2021 by the D Language Foundation