On 2013-10-10 06:24, Jonathan M Davis wrote:

And given that std.concurrency requires casting to and from shared or
immutable in order to pass objects across threads, it seems ilke most of D's
concurrency model requires casting to and/or from shared or immutable. The
major exception is structs or classes which are shared or synchronized rather
than a normal object which is used as shared, and I suspect that that's done
fairly rarely at this point. In fact, it seems like the most common solution
is to ignore shared altogether and use __gshared, which is far worse than
casting to and from shared IMHO.

Isn't the whole point of std.concurrency that is should only accept "shared" for reference types? If you want to use std.concurrency create a "shared" object in the first place?

So, it's my impression that being able to consider casting to or from shared
as abnormal in code which uses shared is a bit of a pipe dream at this point.
The current language design pretty much requires casting when doing much of
anything with concurrency.

There must be a better way to solve this.

--
/Jacob Carlborg

Reply via email to