"Aliases to mutable thread-local data not allowed" when using spawn()

D_Beginner mailsnachhier-privat at yahoo.de
Sun Dec 2 10:44:58 PST 2012


On Sunday, 2 December 2012 at 15:47:36 UTC, D_Beginner wrote:
> Hi there,
>
> I'm quite new do D, but from what I've seen so far, I really 
> like it.
> I tried to implement a very basic chatclient that I've written 
> in
>  Go before, and put the logics to send messages in a send() 
> function, looking like this:
>
> void send(TcpSocket sock) {
> 	while(true) {
> 		write("Message: ");
> 		auto msg = strip(readln());
> 		sock.send(msg);
> 	}
> }
>
> Of course I need this function to run concurrently for I have 
> to check for answers from the server at the same time. But when 
> I try to launch it in an own thread:
>
> spawn(&send, sock);
>
> I get this strange error:
>
> "Error: static assert "Aliases to mutable thread-local data not 
> allowed""
>
> Why is that? How can I make my function(s) run concurrently if 
> not in that way?
>
> thanks in advance, D_Beginner.

Alright, I changed from std.concurrency to std.parallelism and it 
works fine.


More information about the Digitalmars-d-learn mailing list