Atomic updates

bearophile bearophileHUGS at lycos.com
Tue Jan 22 04:48:04 PST 2013


I have tried to scope the Mutex, but the D code gets a little 
slower, I don't know why:


5,6d5
< import std.typecons: scoped;
< import std.traits: ReturnType;
19,22c17,19
<         ReturnType!(scoped!Mutex) mtx;
<         alias this = value;
<     }
<     // pragma(msg, Bucket.sizeof); // 52 bytes
---
>         Mutex mtx;
>         alias this = value;
>     }
31c28
<             b = Bucket(uniform(0, 100), scoped!Mutex());
---
>             b = Bucket(uniform(0, 100), new Mutex());
35c32
<         return buckets[index].value;
---
>         return buckets[index];
70,76c67,68
<         //sink(text(buckets));
<         sink("[");
<         foreach (ref b; buckets) {
<             sink(text(b.value));
<             sink(" ");
<         }
<         sink("] ");
---
>         sink(text(buckets));
>         sink(" ");


(And as you see the "alias this" of Bucket partially stops 
working).

Bye,
bearophile


More information about the Digitalmars-d-learn mailing list