Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix race condition in tests, fix URI bug
- Some tests can't be run in parallel. - `URI` had a pointer to `RequestHeader` which was updated with `RequestHeader.CopyTo` which resulted in the URI pointing to the wrong `RequestHeader` causing bugs and race conditions. The only reason `URI` contained a pointer to `RequestHeader` was to delay the call to `RequestHeader.Host()` until really needed. But these days instead of parsing all headers, `RequestHeader.Host()` uses `RequestHeader.peekRawHeader()` which is rather fast. So we can remove the pointer in `URI` and completely decouple the two structs improving code quality and fixing the bug. For some reason this results in faster code on average as well: benchmark old ns/op new ns/op delta BenchmarkClientGetEndToEnd1Inmemory-8 1189 1369 +15.14% BenchmarkClientGetEndToEnd10Inmemory-8 1143 1161 +1.57% BenchmarkClientGetEndToEnd100Inmemory-8 1228 1236 +0.65% BenchmarkClientGetEndToEnd1000Inmemory-8 1213 1213 +0.00% BenchmarkClientGetEndToEnd10KInmemory-8 1362 1350 -0.88% BenchmarkClientEndToEndBigResponse1Inmemory-8 139967 130070 -7.07% BenchmarkClientEndToEndBigResponse10Inmemory-8 142233 131809 -7.33% BenchmarkServerGet1ReqPerConn-8 1726 1593 -7.71% BenchmarkServerGet2ReqPerConn-8 882 927 +5.10% BenchmarkServerGet10ReqPerConn-8 440 436 -0.91% BenchmarkServerGet10KReqPerConn-8 341 339 -0.59% BenchmarkServerPost1ReqPerConn-8 1728 1706 -1.27% BenchmarkServerPost2ReqPerConn-8 968 963 -0.52% BenchmarkServerPost10ReqPerConn-8 506 505 -0.20% BenchmarkServerPost10KReqPerConn-8 424 420 -0.94% BenchmarkServerGet1ReqPerConn10KClients-8 1117 1051 -5.91% BenchmarkServerGet2ReqPerConn10KClients-8 565 514 -9.03% BenchmarkServerGet10ReqPerConn10KClients-8 390 387 -0.77% BenchmarkServerGet100ReqPerConn10KClients-8 355 348 -1.97% BenchmarkServerHijack-8 339 348 +2.65% BenchmarkServerMaxConnsPerIP-8 326 325 -0.31% BenchmarkServerTimeoutError-8 24355 24180 -0.72%
- Loading branch information