(b *testing.B, numReaders, numWriters, iterations int)
| 101 | } |
| 102 | |
| 103 | func benchmarkMutex(b *testing.B, numReaders, numWriters, iterations int) { |
| 104 | |
| 105 | b.StopTimer() |
| 106 | r, _ := http.NewRequest("GET", "http://localhost:8080/", nil) |
| 107 | done := make(chan struct{}) |
| 108 | b.StartTimer() |
| 109 | |
| 110 | for i := 0; i < b.N; i++ { |
| 111 | wait := make(chan struct{}) |
| 112 | |
| 113 | for i := 0; i < numReaders; i++ { |
| 114 | go parallelReader(r, "test", iterations, wait, done) |
| 115 | } |
| 116 | |
| 117 | for i := 0; i < numWriters; i++ { |
| 118 | go parallelWriter(r, "test", "123", iterations, wait, done) |
| 119 | } |
| 120 | |
| 121 | close(wait) |
| 122 | |
| 123 | for i := 0; i < numReaders+numWriters; i++ { |
| 124 | <-done |
| 125 | } |
| 126 | |
| 127 | } |
| 128 | |
| 129 | } |
| 130 | |
| 131 | func BenchmarkMutexSameReadWrite1(b *testing.B) { |
| 132 | benchmarkMutex(b, 1, 1, 32) |
no test coverage detected