A map using a lock-free concurrency using left-right algo, written in Go
at main 33 lines 398 B view raw
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}