Atomic updates: Difference between revisions

m
Fix upper bounds of `uniform`
(→‎{{header|Rust}}: Added rust)
m (Fix upper bounds of `uniform`)
Line 689:
import core.thread: Thread;
import core.sync.mutex: Mutex;
import core.time: durseconds;
 
__gshared uint transfersCount;
Line 757:
 
void randomize(size_t N)(Buckets!N data) {
immutable maxi = data.length - 1;
auto rng = Xorshift(1);
 
while (data.running) {
immutable i = uniform(0, maxidata.length, rng);
immutable j = uniform(0, maxidata.length, rng);
immutable amount = uniform!"[]"(0, 20, rng);
data.transfer(i, j, amount);
}
Line 769 ⟶ 768:
 
void equalize(size_t N)(Buckets!N data) {
immutable maxi = data.length - 1;
auto rng = Xorshift(1);
 
while (data.running) {
immutable i = uniform(0, maxidata.length, rng);
immutable j = uniform(0, maxidata.length, rng);
immutable a = data[i];
immutable b = data[j];
Line 788 ⟶ 786:
writeln(transfersCount, " ", data);
transfersCount = 0;
Thread.sleep(dur!"msecs"(1000)1.seconds);
}
data.running = false;
Anonymous user