On Thursday, 3 May 2012 at 13:40:41 UTC, Steven Schveighoffer wrote:
On Wed, 02 May 2012 12:59:34 -0400, David Nadlinger <[email protected]> wrote:
Additionally, shared is currently little more than a marker for non-TLS data.

No, it's very important that it is a type constructor. For example, it makes weak-pure functions possible.

I think there is a large piece of shared missing/undefined, and that is, how do I mark something shared as "temporarily local".
 I think Bartosz proposed something like "lent".

We essentially need the equivalent of const for shared. Const unifies immutable and mutable, we need something to unify shared and thread-local.

The problem is, something like this needs to be combined with thread-locks. I wonder if some kind of ARC would be useful for automatically unlocking the data.

Yes, it is important indeed, at least if we want the type system to give guarantees about multi-threaded code. I just meant that in the current state, it provides little more than a way to make sure that shared data isn't accidentally passed around/used in places where synchronization isn't properly handled, because none of the fancier related ideas have actually been implemented so far.

David

Reply via email to