digitalmars.D.bugs - [Issue 14893] New: std.concurrency: can't send shared arrays or
- via Digitalmars-d-bugs (71/71) Aug 09 2015 https://issues.dlang.org/show_bug.cgi?id=14893
https://issues.dlang.org/show_bug.cgi?id=14893 Issue ID: 14893 Summary: std.concurrency: can't send shared arrays or shared structs Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: phobos Assignee: nobody puremagic.com Reporter: ag0aep6g gmail.com Shared array: ---- void main() { shared int[] x; import std.concurrency; send(thisTid, x); } ---- /home/test/d/dmd2/linux/bin64/../../src/phobos/std/variant.d(319): Error: cannot implicitly convert expression (*src) of type shared(int)[] to const(int)[] /home/test/d/dmd2/linux/bin64/../../src/phobos/std/variant.d(619): Error: function core.stdc.string.memcpy (void* s1, const(void*) s2, ulong n) is not callable using argument types (ubyte[32]*, shared(int)*, ulong) /home/test/d/dmd2/linux/bin64/../../src/phobos/std/variant.d(420): Error: template instance std.variant.VariantN!32LU.VariantN.opAssign!(shared(int)) error instantiating /home/test/d/dmd2/linux/bin64/../../src/phobos/std/variant.d(638): instantiated from here: handler!(shared(int)[]) /home/test/d/dmd2/linux/bin64/../../src/phobos/std/variant.d(554): instantiated from here: opAssign!(shared(int)[]) /home/test/d/dmd2/linux/bin64/../../src/phobos/std/concurrency.d(117): instantiated from here: __ctor!(shared(int)[]) /home/test/d/dmd2/linux/bin64/../../src/phobos/std/concurrency.d(628): ... (2 instantiations, -v to show) ... /home/test/d/dmd2/linux/bin64/../../src/phobos/std/concurrency.d(594): instantiated from here: _send!(shared(int[])) test.d(5): instantiated from here: send!(shared(int[])) ---- Shared struct: ---- struct S {} void main() { shared S x; import std.concurrency; send(thisTid, x); } ---- /home/test/d/dmd2/linux/bin64/../../src/phobos/std/variant.d(619): Error: function core.stdc.string.memcpy (void* s1, const(void*) s2, ulong n) is not callable using argument types (ubyte[32]*, shared(S)*, ulong) /home/test/d/dmd2/linux/bin64/../../src/phobos/std/variant.d(554): Error: template instance std.variant.VariantN!32LU.VariantN.opAssign!(shared(S)) error instantiating /home/test/d/dmd2/linux/bin64/../../src/phobos/std/concurrency.d(117): instantiated from here: __ctor!(shared(S)) /home/test/d/dmd2/linux/bin64/../../src/phobos/std/concurrency.d(628): instantiated from here: __ctor!(shared(S)) /home/test/d/dmd2/linux/bin64/../../src/phobos/std/concurrency.d(618): instantiated from here: _send!(shared(S)) /home/test/d/dmd2/linux/bin64/../../src/phobos/std/concurrency.d(594): instantiated from here: _send!(shared(S)) test.d(6): instantiated from here: send!(shared(S)) ---- --
Aug 09 2015