Commit Briefs
Fix race-y channel close/error assignment
Data race occurred when assigning to err and then subsequently reading it from anywhere else. Moving the channel close down could potentially help, but far easier to just gate both with a sync.Once since this isn't a code path that seems like it needs to be super-performant. Changes cause CloseWithError to be call-able once, ensuring that there's no case where err is written to while being read (as would happen when closing and reading c.err from another goroutine the moment c.closed is closed). Signed-off-by: Noel Cower <ncower@gmail.com>
Merge pull request #13 from stevvooe/document-exported-functions
lint/vet: address several issues identified by lint/vet
lint/vet: address several issues identified by lint/vet
Signed-off-by: Stephen J Day <stephen.day@docker.com>
Merge pull request #8 from talex5/master
Always negotiate a compatible protocol version
Fix format string error
Error was: error handling connection error negotiating version:%!(EXTRA *errors.errorString=bad version negotiation) will close Signed-off-by: Thomas Leonard <thomas.leonard@docker.com>
Merge pull request #1 from stevvooe/flush-race-fix
p9p: address race condition in flush response
p9p: address race condition in flush response
Signed-off-by: Stephen J Day <stephen.day@docker.com>
Merge branch 'pinata-pkg-filtered' into pinata-filtered
Signed-off-by: Stephen J Day <stephen.day@docker.com>
p9p: remove per-message logging
Printing all requests and responses to the log is quite expensive, especially when sending megabytes of data through 9P. This patch leaves the logging in the error paths and the flush path. Signed-off-by: David Scott <dave.scott@docker.com>
pkg/p9p: refactor ServeConn to make room for Server
Signed-off-by: Stephen J Day <stephen.day@docker.com>