From 8919fe9e4d00aec34cfb8e3a0e5c7f629c9e1fc5 Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Tue, 24 Apr 2018 14:28:19 +0000 Subject: [PATCH] net/http: explain more how Pusher.Push works This will clarify that the resources are not completely pushed yet when `Push` returns and that it starts a separate goroutine. This might be implementation dependant but as I believe there is currently only one implementation it should be added to the documentation of the interface which most people will look up first. Change-Id: Id151c5563fd0c4e611eb1d93b4f64bf747ddf6d4 GitHub-Last-Rev: 1f46eb9a081f4529abc04026589ffd463be579b3 GitHub-Pull-Request: golang/go#25025 Reviewed-on: https://go-review.googlesource.com/c/108939 Reviewed-by: Brad Fitzpatrick --- src/net/http/http.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/net/http/http.go b/src/net/http/http.go index ce0eceb1de..30d1a52b63 100644 --- a/src/net/http/http.go +++ b/src/net/http/http.go @@ -135,6 +135,10 @@ type Pusher interface { // data that may trigger a request for URL X. This avoids a race where the // client issues requests for X before receiving the PUSH_PROMISE for X. // + // Push will run in a separate goroutine making the order of arrival + // non-deterministic. Any required synchronization needs to be implemented + // by the caller. + // // Push returns ErrNotSupported if the client has disabled push or if push // is not supported on the underlying connection. Push(target string, opts *PushOptions) error -- 2.50.0