On 19/05/2016 10:41 PM, Thorsten Sommer wrote:
On Thursday, 19 May 2016 at 10:13:21 UTC, rikki cattermole wrote:

At this point I'd recommend you to just ignore Appender.
Write your own.

Dear rikki,

Thanks for the proposal :) Here is the new attempt #4 as simple test
case: https://dpaste.dzfl.pl/f6a9663320e5

It compiles & runs, but the array of strings gets not shared across
threads :( I am sure that I missed something about the shared() concept...

Hmm...


Best regards,
Thorsten

What I meant was for you to create e.g. a struct that you can control to meet your needs. Not to declare an empty class and make your data global.

struct MyAppender(T) {
        T[] data;
        size_t realLen;

        void add(T v) {...}
        T[] data() { return data[0 .. realLen]; }
}

void main() {
        import std.stdio : writeln;
        MyAppender!char stuff;
        stuff.add('a');
        writeln(stuff.data);
}

Although based upon your posts, I'd say you should focus more on learning the language and less on threading. I.e. immutable A obj = new A();
Is probably not doing what you think it is.

Reply via email to