diff options
| author | hilimd <68371223+hilimd@users.noreply.github.com> | 2021-04-06 13:39:26 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-06 13:39:26 +0800 |
| commit | 8693cdacae5b4201ccd259382a02392250b0890e (patch) | |
| tree | b565af4380b0f59a61b1d3c9fad8f04cbb802e7c /weed/operation | |
| parent | 17d02264f33f501e124060ade7b0b39e687aaa3d (diff) | |
| parent | a37eca78cd680858d021cd864766b0847328a8d7 (diff) | |
| download | seaweedfs-8693cdacae5b4201ccd259382a02392250b0890e.tar.xz seaweedfs-8693cdacae5b4201ccd259382a02392250b0890e.zip | |
Merge pull request #75 from chrislusf/master
sync
Diffstat (limited to 'weed/operation')
| -rw-r--r-- | weed/operation/buffer_pool.go | 24 | ||||
| -rw-r--r-- | weed/operation/upload_content.go | 5 |
2 files changed, 26 insertions, 3 deletions
diff --git a/weed/operation/buffer_pool.go b/weed/operation/buffer_pool.go new file mode 100644 index 000000000..9cbe4787f --- /dev/null +++ b/weed/operation/buffer_pool.go @@ -0,0 +1,24 @@ +package operation + +import ( + "github.com/valyala/bytebufferpool" + "sync/atomic" +) + +var bufferCounter int64 + +func GetBuffer() *bytebufferpool.ByteBuffer { + defer func() { + atomic.AddInt64(&bufferCounter, 1) + // println("+", bufferCounter) + }() + return bytebufferpool.Get() +} + +func PutBuffer(buf *bytebufferpool.ByteBuffer) { + defer func() { + atomic.AddInt64(&bufferCounter, -1) + // println("-", bufferCounter) + }() + bytebufferpool.Put(buf) +} diff --git a/weed/operation/upload_content.go b/weed/operation/upload_content.go index 9957a04cd..e891ae03b 100644 --- a/weed/operation/upload_content.go +++ b/weed/operation/upload_content.go @@ -19,7 +19,6 @@ import ( "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" "github.com/chrislusf/seaweedfs/weed/security" "github.com/chrislusf/seaweedfs/weed/util" - "github.com/valyala/bytebufferpool" ) type UploadResult struct { @@ -190,8 +189,8 @@ func doUploadData(uploadUrl string, filename string, cipher bool, data []byte, i } func upload_content(uploadUrl string, fillBufferFunction func(w io.Writer) error, filename string, isGzipped bool, originalDataSize int, mtype string, pairMap map[string]string, jwt security.EncodedJwt) (*UploadResult, error) { - buf := bytebufferpool.Get() - defer bytebufferpool.Put(buf) + buf := GetBuffer() + defer PutBuffer(buf) body_writer := multipart.NewWriter(buf) h := make(textproto.MIMEHeader) h.Set("Content-Disposition", fmt.Sprintf(`form-data; name="file"; filename="%s"`, fileNameEscaper.Replace(filename))) |
