Previously the mutex.Lock was acquired before creating a new connection. The lock would then hold until the process was finished, and all network latency would be absorbed by other goroutines trying to establish a new connection. Now the lock is acquired after the connection has been created. The downside of this approach is that concurrent goroutine may be trying to open a connection to the same target. The loser in the race will then have to Close the connection and use the winner's instead. Signed-off-by: Paulo Gomes <paulo.gomes@weave.works> |
||
|---|---|---|
| .. | ||
| gogit | ||
| libgit2 | ||
| strategy | ||
| git.go | ||
| git_test.go | ||
| options.go | ||
| options_test.go | ||