shared array?
Prudence via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Sep 11 10:29:45 PDT 2015
On Friday, 11 September 2015 at 16:04:22 UTC, Kagamin wrote:
> On Friday, 11 September 2015 at 14:54:00 UTC, Prudence wrote:
>> But in this case it is static, so why does it matter? Do you
>> have any ideas how to wrap it or fix this?
>
> It matters exactly because it is static. A code written for
> single-threaded environment may not work correctly in shared
> context. It simply wasn't written for it. The way to fix it is
> to write code for shared context.
I don't care about "maybe" working. Since the array is hidden
inside a class I can control who and how it is used and deal with
the race conditions.
What I want is to be able to use Array so I don't have to rely on
the GC. but since it complains about the ~this destruction, how
can I fix that? If I wrap Array, and use a non-shared array
inside it, I'll still have the same problem because it will be
thread local to the object? or is shared applied to all sub types
of a class?
e.g.,
class MySharedArrayWrapper
{
static Array!(int) a;
}
and instead I use
static shared MySharedArrayWrapper;
But a isn't marked shared, so will it be TLS, which put's me back
at square one. Or it it marked shared, which then still complains?
Again, I'm asking how, not why.
More information about the Digitalmars-d-learn
mailing list