(b *testing.B)
| 264 | } |
| 265 | |
| 266 | func benchmarkMultiGetSetBlock(b *testing.B) { |
| 267 | slm := NewShardLockMaps() |
| 268 | finished := make(chan struct{}, 2*b.N) |
| 269 | get, set := GetSet(slm, finished) |
| 270 | for i := 0; i < b.N; i++ { |
| 271 | slm.Set(strconv.Itoa(i%100), "value") |
| 272 | } |
| 273 | b.ResetTimer() |
| 274 | for i := 0; i < b.N; i++ { |
| 275 | go set(strconv.Itoa(i%100), "value") |
| 276 | go get(strconv.Itoa(i%100), "value") |
| 277 | } |
| 278 | for i := 0; i < 2*b.N; i++ { |
| 279 | <-finished |
| 280 | } |
| 281 | } |
| 282 | |
| 283 | func GetSet(slm ShardLockMaps, finished chan struct{}) (set func(key, value string), get func(key, value string)) { |
| 284 | return func(key, value string) { |
nothing calls this directly
no test coverage detected