Bug in generator
Profile Anaysis via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Jan 30 02:58:56 PST 2017
the code from
https://dlang.org/library/std/concurrency/generator.html
gives a seg fault at the end.
import std.concurrency;
import std.stdio;
void main()
{
auto tid = spawn(
{
while (true)
{
writeln(receiveOnly!int());
}
});
auto r = new Generator!int(
{
foreach (i; 1 .. 10)
yield(i);
});
foreach (e; r)
{
tid.send(e);
}
}
0x00007FF7BDDA05E5 in
std.concurrency.receiveOnly!int.receiveOnly.__lambda3 at
\..\..\src\phobos\std\concurrency.d(805)
0x00007FF7BDDA1997 in void std.concurrency.Message.map!(pure
@nogc @safe void
function(std.concurrency.OwnerTerminated)*).map(pure @nogc @safe
void function(std.concurrency.OwnerTerminated)*) at
\..\..\src\phobos\std\concurrency.d(163)
0x00007FF7BDDA0B04 in
D3std11concurrency10MessageBox160__T3getTDFNaNbNiNfiZvTPFNaNiNfC3std11concurrency14LinkTerminatedZvTPFNaNiNfC3std11concurrency15OwnerTerminatedZvTPFS3std7variant18__T8VariantNVmi20Z8VariantNZvZ3getMFDFNaNbNiNfiZvPFNaNiNfC3std11concurrency14LinkTerminatedZvPFNaNiNfC3std11concurrency15OwnerTerminatedZvPFS3std7variant18__T8VariantNVmi20Z8VariantNZvZ13onStandardMsgMFKS3std11concurrency7MessageZb
0x00007FF7BDDA0EA0 in
D3std11concurrency10MessageBox160__T3getTDFNaNbNiNfiZvTPFNaNiNfC3std11concurrency14LinkTerminatedZvTPFNaNiNfC3std11concurrency15OwnerTerminatedZvTPFS3std7variant18__T8VariantNVmi20Z8VariantNZvZ3getMFDFNaNbNiNfiZvPFNaNiNfC3std11concurrency14LinkTerminatedZvPFNaNiNfC3std11concurrency15OwnerTerminatedZvPFS3std7variant18__T8VariantNVmi20Z8VariantNZvZ13onLinkDeadMsgMFKS3std11concurrency7MessageZb at \..\..\src\phobos\std\concurrency.d(1988)
0x00007FF7BDDA0F4A in
D3std11concurrency10MessageBox160__T3getTDFNaNbNiNfiZvTPFNaNiNfC3std11concurrency14LinkTerminatedZvTPFNaNiNfC3std11concurrency15OwnerTerminatedZvTPFS3std7variant18__T8VariantNVmi20Z8VariantNZvZ3getMFDFNaNbNiNfiZvPFNaNiNfC3std11concurrency14LinkTerminatedZvPFNaNiNfC3std11concurrency15OwnerTerminatedZvPFS3std7variant18__T8VariantNVmi20Z8VariantNZvZ12onControlMsgMFKS3std11concurrency7MessageZb at \..\..\src\phobos\std\concurrency.d(2000)
0x00007FF7BDDA0FFA in
D3std11concurrency10MessageBox160__T3getTDFNaNbNiNfiZvTPFNaNiNfC3std11concurrency14LinkTerminatedZvTPFNaNiNfC3std11concurrency15OwnerTerminatedZvTPFS3std7variant18__T8VariantNVmi20Z8VariantNZvZ3getMFDFNaNbNiNfiZvPFNaNiNfC3std11concurrency14LinkTerminatedZvPFNaNiNfC3std11concurrency15OwnerTerminatedZvPFS3std7variant18__T8VariantNVmi20Z8VariantNZvZ4scanMFKS3std11concurrency36__T4ListTS3std11concurrency7MessageZ4ListZb at \..\..\src\phobos\std\concurrency.d(2016)
0x00007FF7BDDA094C in bool std.concurrency.MessageBox.get!(pure
nothrow @nogc @safe void delegate(int), pure @nogc @safe void
function(std.concurrency.LinkTerminated)*, pure @nogc @safe void
function(std.concurrency.OwnerTerminated)*, void
function(std.variant.VariantN!(20uL).VariantN)*).get(pure nothrow
@nogc @safe void delegate(int), pure @nogc @safe void
function(std.concurrency.LinkTerminated)*, pure @nogc @safe void
function(std.concurrency.OwnerTerminated)*, void
function(std.variant.VariantN!(20uL).VariantN)*) at
\..\..\src\phobos\std\concurrency.d(2115)
0x00007FF7BDDA0579 in std.concurrency.receiveOnly!int.receiveOnly
at \..\..\src\phobos\std\concurrency.d(806)
0x00007FF7BDD9F50D in main.main.__lambda1 at main.d(82)
0x00007FF7BDDA46C2 in std.concurrency._spawn!(void
function())._spawn.exec at
\..\..\src\phobos\std\concurrency.d(538)
0x00007FF7BDDE9302 in void core.thread.Thread.run()
0x00007FF7BDDD5CBD in thread_entryPoint
0x00007FF7BDE5D96D in thread_start<unsigned int (__cdecl*)(void *
__ptr64)> at
d:\th\minkernel\crts\ucrt\src\appcrt\startup\thread.cpp(115)
0x00007FF9EB178364 in BaseThreadInitThunk
0x00007FF9EBD570D1 in RtlUserThreadStart
Also, if one tries to create a global generator an error about
PAGESIZE not being a compile time value is given.
More information about the Digitalmars-d-learn
mailing list