diff options
author | Aliaksandr Valialkin <valyala@gmail.com> | 2016-02-05 12:50:58 +0200 |
---|---|---|
committer | Aliaksandr Valialkin <valyala@gmail.com> | 2016-02-05 12:50:58 +0200 |
commit | eafcb74ce5af1c198f9446c2ec3511169e0ebb14 (patch) | |
tree | 91cdb49a7e2f1eb845f1af7d96c446a8923fb81c /userdata.go | |
parent | client: use TLS session cache by default (diff) | |
download | fasthttp-eafcb74ce5af1c198f9446c2ec3511169e0ebb14.tar.gz fasthttp-eafcb74ce5af1c198f9446c2ec3511169e0ebb14.tar.bz2 fasthttp-eafcb74ce5af1c198f9446c2ec3511169e0ebb14.zip |
Call Close on user values stored via RequestCtx.SetUserValue if these values implement io.Closer
Diffstat (limited to 'userdata.go')
-rw-r--r-- | userdata.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/userdata.go b/userdata.go index ecc343e..a99ec5d 100644 --- a/userdata.go +++ b/userdata.go @@ -1,5 +1,9 @@ package fasthttp +import ( + "io" +) + type userDataKV struct { key []byte value interface{} @@ -55,5 +59,13 @@ func (d *userData) GetBytes(key []byte) interface{} { } func (d *userData) Reset() { + args := *d + n := len(args) + for i := 0; i < n; i++ { + v := args[i].value + if vc, ok := v.(io.Closer); ok { + vc.Close() + } + } *d = (*d)[:0] } |