std.concurrency.receive and shared const(char)[]?
Anonymouse
zorael at gmail.com
Sun Jun 28 16:39:12 UTC 2020
On Sunday, 28 June 2020 at 16:11:50 UTC, BakedPineapple wrote:
> import std.stdio;
> import std.concurrency;
>
> void main()
> {
> auto t = spawn((){
> receive((shared const(char)[] char_arr) {
> ownerTid.send(true);
> });
> });
> shared const(char)[] char_arr = "cut my code into pieces";
> t.send(char_arr);
> assert(receiveOnly!(bool) == true);
> }
>
> When I run this program, it blocks on the receive() inside the
> spawned thread. What am I doing wrong?
Make the parameter shared(const(char))[] and it will work. I'll
leave it to someone who knows more to explain why it behaves that
way.
More information about the Digitalmars-d-learn
mailing list