A map using a lock-free concurrency using left-right algo, written in Go
1package leftright
2
3import (
4 "fmt"
5 "sort"
6)
7
8func ExampleReadHandler_Iter() {
9 m := New[int, int]()
10
11 for i := 0; i < 10; i++ {
12 k, v := i, i
13 m.Set(k, v)
14 }
15
16 m.Commit()
17
18 rh := m.NewReadHandler()
19 rh.Enter()
20 defer rh.Close()
21
22 values := make([]int, rh.Len())
23
24 for k, v := range rh.Iter() {
25 values[k] = v
26 }
27
28 sort.Ints(values)
29 fmt.Println(values)
30
31 // Output:
32 // [0 1 2 3 4 5 6 7 8 9]
33}