diff options
author | WeidiDeng <weidi_deng@icloud.com> | 2022-09-03 06:57:55 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-02 16:57:55 -0600 |
commit | 83b26975bd9330c4cfc44d52b106da739240e72b (patch) | |
tree | 23cd0c242cd5a42f8f916bbb29fcfa380006352a /modules/caddyhttp/reverseproxy/fastcgi/pool.go | |
parent | 005c5a63823b19382aa918f1e1f3288e66446225 (diff) |
fastcgi: Optimize FastCGI transport (#4978)
* break up code and use lazy reading and pool bufio.Writer
* close underlying connection when operation failed
* allocate bufWriter and streamWriter only once
* refactor record writing
* rebase from master
* handle err
* Fix type assertion
Also reduce some duplication
* Refactor client and clientCloser for logging
Should reduce allocations
* Minor cosmetic adjustments; apply Apache license
* Appease the linter
Co-authored-by: Matthew Holt <mholt@users.noreply.github.com>
Diffstat (limited to 'modules/caddyhttp/reverseproxy/fastcgi/pool.go')
-rw-r--r-- | modules/caddyhttp/reverseproxy/fastcgi/pool.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/modules/caddyhttp/reverseproxy/fastcgi/pool.go b/modules/caddyhttp/reverseproxy/fastcgi/pool.go new file mode 100644 index 0000000..29017f1 --- /dev/null +++ b/modules/caddyhttp/reverseproxy/fastcgi/pool.go @@ -0,0 +1,26 @@ +// Copyright 2015 Matthew Holt and The Caddy Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package fastcgi + +import ( + "bytes" + "sync" +) + +var bufPool = sync.Pool{ + New: func() any { + return new(bytes.Buffer) + }, +} |