digitalmars.D.learn - shared associative array initialization
- japplegame (15/15) May 13 2012 I have no idea how to simple initialize shared associative array.
- Era Scarecrow (8/21) May 13 2012 I'm not sure, but I don't think the static this should be
I have no idea how to simple initialize shared associative array.
This code compiled but causing access violation when running.
shared uint[char] arr;
shared static this() {
// next expression seems wrong, because
// arr is process related and ['a':1, 'b':2] is thread related
// probably, should be implicit cast error
arr = ['a':1, 'b':2];
// this is okay, but too cumbersome
arr['c'] = 3;
arr['d'] = 4;
}
void main() {
}
DMD32 D Compiler v2.059 on Windows 7 64 bit
May 13 2012
On Sunday, 13 May 2012 at 16:25:42 UTC, japplegame wrote:
I have no idea how to simple initialize shared associative
array. This code compiled but causing access violation when
running.
shared uint[char] arr;
shared static this() {
// next expression seems wrong, because
// arr is process related and ['a':1, 'b':2] is thread related
// probably, should be implicit cast error
arr = ['a':1, 'b':2];
// this is okay, but too cumbersome
arr['c'] = 3;
arr['d'] = 4;
}
I'm not sure, but I don't think the static this should be
shared; only the data. static this should only runs once during
program startup, otherwise you might be trying to do it per
thread which defeats the shared purpose anyways. I've tried it
but the problem remained.
If your array is immutable you won't need shared at all and it
should be available.
May 13 2012








"Era Scarecrow" <rtcvb32 yahoo.com>