diff --git a/lang/lsp/client.go b/lang/lsp/client.go index a7ac4491..a307798a 100644 --- a/lang/lsp/client.go +++ b/lang/lsp/client.go @@ -36,7 +36,6 @@ type LSPClient struct { *lspHandler tokenTypes []string tokenModifiers []string - hasSemanticTokensRange bool files map[DocumentURI]*TextDocumentItem provider LanguageServiceProvider ClientOptions @@ -193,8 +192,6 @@ func initLSPClient(ctx context.Context, svr io.ReadWriteCloser, dir DocumentURI, if !ok || semanticTokensProvider == nil { return nil, fmt.Errorf("server did not provide SemanticTokensProvider") } - semanticTokensRange, ok := semanticTokensProvider["range"].(bool) - cli.hasSemanticTokensRange = ok && semanticTokensRange legend, ok := semanticTokensProvider["legend"].(map[string]interface{}) if !ok || legend == nil { return nil, fmt.Errorf("server did not provide SemanticTokensProvider.legend") diff --git a/lang/lsp/lsp.go b/lang/lsp/lsp.go index 92c7b62e..c55cf698 100644 --- a/lang/lsp/lsp.go +++ b/lang/lsp/lsp.go @@ -171,13 +171,14 @@ func NewURI(file string) DocumentURI { } type TextDocumentItem struct { - URI DocumentURI `json:"uri"` - LanguageID string `json:"languageId"` - Version int `json:"version"` - Text string `json:"text"` - LineCounts []int `json:"-"` - Symbols map[Range]*DocumentSymbol `json:"-"` - Definitions map[Position][]Location `json:"-"` + URI DocumentURI `json:"uri"` + LanguageID string `json:"languageId"` + Version int `json:"version"` + Text string `json:"text"` + LineCounts []int `json:"-"` + Symbols map[Range]*DocumentSymbol `json:"-"` + Definitions map[Position][]Location `json:"-"` + SemanticTokens *SemanticTokens `json:"-"` } type DocumentSymbol struct { diff --git a/lang/lsp/lsp_methods.go b/lang/lsp/lsp_methods.go index e2d94796..ca5f93c4 100644 --- a/lang/lsp/lsp_methods.go +++ b/lang/lsp/lsp_methods.go @@ -156,22 +156,27 @@ func (cli *LSPClient) References(ctx context.Context, id Location) ([]Location, return resp, nil } -// Some language servers do not provide semanticTokens/range. -// In that case, we fall back to semanticTokens/full and then filter the tokens manually. func (cli *LSPClient) getSemanticTokensRange(ctx context.Context, req DocumentRange, resp *SemanticTokens) error { - if cli.hasSemanticTokensRange { - if err := cli.Call(ctx, "textDocument/semanticTokens/range", req, resp); err != nil { + f, err := cli.DidOpen(ctx, DocumentURI(req.TextDocument.URI)) + if err != nil { + return err + } + + if f.SemanticTokens == nil { + req1 := SemanticTokensFullParams{ + TextDocument: req.TextDocument, + } + var fullResp SemanticTokens + if err := cli.Call(ctx, "textDocument/semanticTokens/full", req1, &fullResp); err != nil { return err } - return nil - } - // fall back to semanticTokens/full - req1 := SemanticTokensFullParams{ - TextDocument: req.TextDocument, - } - if err := cli.Call(ctx, "textDocument/semanticTokens/full", req1, resp); err != nil { - return err + f.SemanticTokens = &fullResp } + + resp.ResultID = f.SemanticTokens.ResultID + resp.Data = make([]uint32, len(f.SemanticTokens.Data)) + copy(resp.Data, f.SemanticTokens.Data) + filterSemanticTokensInRange(resp, req.Range) return nil } diff --git a/lang/utils/files.go b/lang/utils/files.go index 9f850edc..0e039450 100644 --- a/lang/utils/files.go +++ b/lang/utils/files.go @@ -28,7 +28,7 @@ func CountFiles(dir string, subfix string, skipdir string) (int, int) { skipdir, _ = filepath.Abs(filepath.Join(dir, skipdir)) filepath.Walk(dir, func(path string, info os.FileInfo, err error) error { if strings.HasPrefix(path, skipdir) { - return nil + return filepath.SkipDir } if !info.IsDir() && filepath.Ext(path) == subfix { count++ diff --git a/testdata/asts/localsession_g.json b/testdata/asts/localsession_g.json index 73d533ce..72958d6d 100644 --- a/testdata/asts/localsession_g.json +++ b/testdata/asts/localsession_g.json @@ -1 +1 @@ -{"id":"/Users/bytedance/golang/work/abcoder/tmp/localsession","ASTVersion":"v0.1.2","ToolVersion":"","Path":"","Modules":{"github.com/cloudwego/localsession":{"Language":"go","Version":"","Name":"github.com/cloudwego/localsession","Dir":".","Packages":{"github.com/cloudwego/localsession":{"IsMain":false,"IsTest":false,"PkgPath":"github.com/cloudwego/localsession","Functions":{"BindSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","File":"gls.go","Line":115,"StartOffset":3200,"EndOffset":3457,"Content":"// BindSession binds the session with current goroutine\n//\n// NOTICE: MUST call `InitDefaultManager()` once before using this API\nfunc BindSession(s Session) {\n\tif defaultManagerObj == nil {\n\t\treturn\n\t}\n\tdefaultManagerObj.BindSession(SessionID(goID()), s)\n}","Signature":"func BindSession(s Session)","Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"gls.go","Line":115,"StartOffset":3347,"EndOffset":3356}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"goID","File":"gls.go","Line":119,"StartOffset":3444,"EndOffset":3448}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.BindSession","File":"gls.go","Line":119,"StartOffset":3422,"EndOffset":3433}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"gls.go","Line":119,"StartOffset":3434,"EndOffset":3443}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","File":"gls.go","Line":116,"StartOffset":3364,"EndOffset":3381}]},"CurSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","File":"gls.go","Line":104,"StartOffset":2908,"EndOffset":3198,"Content":"// CurSession gets the session for current goroutine\n//\n// NOTICE: MUST call `InitDefaultManager()` once before using this API\nfunc CurSession() (Session, bool) {\n\tif defaultManagerObj == nil {\n\t\treturn nil, false\n\t}\n\ts, ok := defaultManagerObj.GetSession(SessionID(goID()))\n\treturn s, ok\n}","Signature":"func CurSession() (Session, bool)","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"gls.go","Line":104,"StartOffset":3054,"EndOffset":3061}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"goID","File":"gls.go","Line":108,"StartOffset":3174,"EndOffset":3178}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GetSession","File":"gls.go","Line":108,"StartOffset":3153,"EndOffset":3163}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"gls.go","Line":108,"StartOffset":3164,"EndOffset":3173}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","File":"gls.go","Line":105,"StartOffset":3075,"EndOffset":3092}]},"DefaultManagerOptions":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"DefaultManagerOptions","File":"gls.go","Line":42,"StartOffset":1270,"EndOffset":1546,"Content":"// DefaultManagerOptions returns default options for the default manager\nfunc DefaultManagerOptions() ManagerOptions {\n\treturn ManagerOptions{\n\t\tShardNumber: 100,\n\t\tGCInterval: time.Minute * 10,\n\t\tEnableImplicitlyTransmitAsync: false,\n\t}\n}","Signature":"func DefaultManagerOptions() ManagerOptions","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","File":"gls.go","Line":42,"StartOffset":1372,"EndOffset":1386}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","File":"gls.go","Line":43,"StartOffset":1397,"EndOffset":1411}]},"GetDefaultManager":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GetDefaultManager","File":"gls.go","Line":51,"StartOffset":1548,"EndOffset":1667,"Content":"// GetDefaultManager returns the default manager\nfunc GetDefaultManager() *SessionManager {\n\treturn defaultManagerObj\n}","Signature":"func GetDefaultManager() *SessionManager","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager","File":"gls.go","Line":51,"StartOffset":1622,"EndOffset":1637}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","File":"gls.go","Line":52,"StartOffset":1648,"EndOffset":1665}]},"Go":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Go","File":"gls.go","Line":137,"StartOffset":3868,"EndOffset":4049,"Content":"// Go calls f asynchronously and pass caller's session to the new goroutine\nfunc Go(f func()) {\n\ts, ok := CurSession()\n\tif !ok {\n\t\tGoSession(nil, f)\n\t} else {\n\t\tGoSession(s, f)\n\t}\n}","Signature":"func Go(f func())","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","File":"gls.go","Line":138,"StartOffset":3974,"EndOffset":3984},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GoSession","File":"gls.go","Line":140,"StartOffset":3999,"EndOffset":4008}]},"GoSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GoSession","File":"gls.go","Line":147,"StartOffset":4051,"EndOffset":4361,"Content":"// SessionGo calls f asynchronously and pass s session to the new goroutine\nfunc GoSession(s Session, f func()) {\n\tgo func() {\n\t\tdefer func() {\n\t\t\tif v := recover(); v != nil {\n\t\t\t\tprintln(fmt.Sprintf(\"GoSession recover: %v\", v))\n\t\t\t}\n\t\t\tUnbindSession()\n\t\t}()\n\t\tif s != nil {\n\t\t\tBindSession(s)\n\t\t}\n\t\tf()\n\t}()\n}","Signature":"func GoSession(s Session, f func())","Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"gls.go","Line":147,"StartOffset":4142,"EndOffset":4151}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","File":"gls.go","Line":153,"StartOffset":4289,"EndOffset":4302},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","File":"gls.go","Line":156,"StartOffset":4330,"EndOffset":4341}]},"InitDefaultManager":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager","File":"gls.go","Line":64,"StartOffset":1669,"EndOffset":2277,"Content":"// InitDefaultManager update and restart default manager.\n// It accept argument opts and env config both.\n//\n// NOTICE:\n// - It use env SESSION_CONFIG_KEY prior to argument opts;\n// - If both env and opts are empty, it won't reset manager;\n// - For concurrent safety, you can only successfully reset manager ONCE.\n//\n//go:nocheckptr\nfunc InitDefaultManager(opts ManagerOptions) {\n\tdefaultManagerOnce.Do(func() {\n\t\t// env config has high priority\n\t\tcheckEnvOptions(\u0026opts)\n\n\t\tif defaultManagerObj != nil {\n\t\t\tdefaultManagerObj.Close()\n\t\t}\n\t\tobj := NewSessionManager(opts)\n\t\tdefaultManagerObj = \u0026obj\n\t})\n}","Signature":"func InitDefaultManager(opts ManagerOptions)","Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","File":"gls.go","Line":64,"StartOffset":2032,"EndOffset":2051}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"checkEnvOptions","File":"gls.go","Line":67,"StartOffset":2123,"EndOffset":2138},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionManager","File":"gls.go","Line":72,"StartOffset":2221,"EndOffset":2238}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Close","File":"gls.go","Line":70,"StartOffset":2200,"EndOffset":2205}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","File":"gls.go","Line":69,"StartOffset":2152,"EndOffset":2169}]},"NewSessionCtx":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtx","File":"session.go","Line":44,"StartOffset":1225,"EndOffset":1436,"Content":"// NewSessionCtx creates and enables a SessionCtx\nfunc NewSessionCtx(ctx context.Context) SessionCtx {\n\tvar enabled atomic.Value\n\tenabled.Store(true)\n\treturn SessionCtx{\n\t\tenabled: \u0026enabled,\n\t\tstorage: ctx,\n\t}\n}","Signature":"func NewSessionCtx(ctx context.Context) SessionCtx","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","File":"session.go","Line":44,"StartOffset":1315,"EndOffset":1325}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","File":"session.go","Line":47,"StartOffset":1383,"EndOffset":1393}]},"NewSessionCtxWithTimeout":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtxWithTimeout","File":"session.go","Line":55,"StartOffset":1438,"EndOffset":1720,"Content":"// NewSessionCtx creates and enables a SessionCtx,\n// and disable the session after timeout\nfunc NewSessionCtxWithTimeout(ctx context.Context, timeout time.Duration) SessionCtx {\n\tret := NewSessionCtx(ctx)\n\tgo func() {\n\t\t\u003c-time.NewTimer(timeout).C\n\t\tret.Disable()\n\t}()\n\treturn ret\n}","Signature":"func NewSessionCtxWithTimeout(ctx context.Context, timeout time.Duration) SessionCtx","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","File":"session.go","Line":55,"StartOffset":1604,"EndOffset":1614}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtx","File":"session.go","Line":56,"StartOffset":1625,"EndOffset":1638}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Disable","File":"session.go","Line":59,"StartOffset":1692,"EndOffset":1699}]},"NewSessionManager":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionManager","File":"manager.go","Line":63,"StartOffset":1636,"EndOffset":2138,"Content":"// NewSessionManager creates a SessionManager with default containers\n// If opts.GCInterval \u003e 0, it will start scheduled GC() loop automatically\nfunc NewSessionManager(opts ManagerOptions) SessionManager {\n\tif opts.ShardNumber \u003c= 0 {\n\t\tpanic(\"ShardNumber must be larger than zero\")\n\t}\n\tshards := make([]*shard, opts.ShardNumber)\n\tfor i := range shards {\n\t\tshards[i] = newShard()\n\t}\n\tret := SessionManager{\n\t\tshards: shards,\n\t\topts: opts,\n\t}\n\n\tif opts.GCInterval \u003e 0 {\n\t\tret.startGC()\n\t}\n\treturn ret\n}","Signature":"func NewSessionManager(opts ManagerOptions) SessionManager","Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","File":"manager.go","Line":63,"StartOffset":1804,"EndOffset":1823}],"Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager","File":"manager.go","Line":63,"StartOffset":1825,"EndOffset":1839}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"newShard","File":"manager.go","Line":69,"StartOffset":2004,"EndOffset":2012}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.startGC","File":"manager.go","Line":77,"StartOffset":2112,"EndOffset":2119}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard","File":"manager.go","Line":67,"StartOffset":1940,"EndOffset":1945},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager","File":"manager.go","Line":71,"StartOffset":2026,"EndOffset":2040}]},"NewSessionMap":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionMap","File":"session.go","Line":102,"StartOffset":2676,"EndOffset":2897,"Content":"// NewSessionMap creates and enables a SessionMap\nfunc NewSessionMap(m map[interface{}]interface{}) *SessionMap {\n\tvar enabled atomic.Value\n\tenabled.Store(true)\n\treturn \u0026SessionMap{\n\t\tenabled: \u0026enabled,\n\t\tstorage: m,\n\t}\n}","Signature":"func NewSessionMap(m map[interface{}]interface{}) *SessionMap","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap","File":"session.go","Line":102,"StartOffset":2776,"EndOffset":2787}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap","File":"session.go","Line":105,"StartOffset":2846,"EndOffset":2856}]},"NewSessionMapWithTimeout":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionMapWithTimeout","File":"session.go","Line":113,"StartOffset":2899,"EndOffset":3190,"Content":"// NewSessionCtx creates and enables a SessionCtx,\n// and disable the session after timeout\nfunc NewSessionMapWithTimeout(m map[interface{}]interface{}, timeout time.Duration) *SessionMap {\n\tret := NewSessionMap(m)\n\tgo func() {\n\t\t\u003c-time.NewTimer(timeout).C\n\t\tret.Disable()\n\t}()\n\treturn ret\n}","Signature":"func NewSessionMapWithTimeout(m map[interface{}]interface{}, timeout time.Duration) *SessionMap","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap","File":"session.go","Line":113,"StartOffset":3075,"EndOffset":3086}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionMap","File":"session.go","Line":114,"StartOffset":3097,"EndOffset":3110}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Disable","File":"session.go","Line":117,"StartOffset":3162,"EndOffset":3169}]},"Session.Get":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":true,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","File":"session.go","Line":30,"StartOffset":821,"EndOffset":892,"Content":"// Get returns value for specific key\nGet(key interface{}) interface{}","Signature":"// Get returns value for specific key\nGet(key interface{}) interface{}"},"Session.IsValid":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":true,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","File":"session.go","Line":27,"StartOffset":751,"EndOffset":818,"Content":"// IsValid tells if the session is valid at present\nIsValid() bool","Signature":"// IsValid tells if the session is valid at present\nIsValid() bool"},"Session.WithValue":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":true,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","File":"session.go","Line":33,"StartOffset":895,"EndOffset":1025,"Content":"// WithValue sets value for specific key,and return newly effective session\nWithValue(key interface{}, val interface{}) Session","Signature":"// WithValue sets value for specific key,and return newly effective session\nWithValue(key interface{}, val interface{}) Session"},"SessionCtx.Disable":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Disable","File":"session.go","Line":65,"StartOffset":1722,"EndOffset":1813,"Content":"// Disable ends the session\nfunc (self SessionCtx) Disable() {\n\tself.enabled.Store(false)\n}","Signature":"func (self SessionCtx) Disable()","Receiver":{"IsPointer":false,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}}},"SessionCtx.Export":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Export","File":"session.go","Line":70,"StartOffset":1815,"EndOffset":1924,"Content":"// Export exports underlying context\nfunc (self SessionCtx) Export() context.Context {\n\treturn self.storage\n}","Signature":"func (self SessionCtx) Export() context.Context","Receiver":{"IsPointer":false,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}}},"SessionCtx.Get":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Get","File":"session.go","Line":80,"StartOffset":2056,"EndOffset":2177,"Content":"// Get value for specific key\nfunc (self SessionCtx) Get(key interface{}) interface{} {\n\treturn self.storage.Value(key)\n}","Signature":"func (self SessionCtx) Get(key interface{}) interface{}","Receiver":{"IsPointer":false,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}}},"SessionCtx.IsValid":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.IsValid","File":"session.go","Line":75,"StartOffset":1926,"EndOffset":2054,"Content":"// IsValid tells if the session is valid at present\nfunc (self SessionCtx) IsValid() bool {\n\treturn self.enabled.Load().(bool)\n}","Signature":"func (self SessionCtx) IsValid() bool","Receiver":{"IsPointer":false,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}}},"SessionCtx.WithValue":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.WithValue","File":"session.go","Line":85,"StartOffset":2179,"EndOffset":2438,"Content":"// Set value for specific key,and return newly effective session\nfunc (self SessionCtx) WithValue(key interface{}, val interface{}) Session {\n\tctx := context.WithValue(self.storage, key, val)\n\treturn SessionCtx{\n\t\tenabled: self.enabled,\n\t\tstorage: ctx,\n\t}\n}","Signature":"func (self SessionCtx) WithValue(key interface{}, val interface{}) Session","Receiver":{"IsPointer":false,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}},"Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"session.go","Line":85,"StartOffset":2313,"EndOffset":2320}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","File":"session.go","Line":87,"StartOffset":2381,"EndOffset":2391}]},"SessionManager.BindSession":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.BindSession","File":"manager.go","Line":134,"StartOffset":3290,"EndOffset":3573,"Content":"// BindSession binds the session with current goroutine\nfunc (self *SessionManager) BindSession(id SessionID, s Session) {\n\tshard := self.shards[uint64(id)%uint64(self.opts.ShardNumber)]\n\n\tshard.Store(id, s)\n\n\tif self.opts.EnableImplicitlyTransmitAsync {\n\t\ttransmitSessionID(id)\n\t}\n}","Signature":"func (self *SessionManager) BindSession(id SessionID, s Session)","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}},"Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"manager.go","Line":134,"StartOffset":3386,"EndOffset":3398},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"manager.go","Line":134,"StartOffset":3400,"EndOffset":3409}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"transmitSessionID","File":"manager.go","Line":140,"StartOffset":3547,"EndOffset":3564}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Store","File":"manager.go","Line":137,"StartOffset":3485,"EndOffset":3490}]},"SessionManager.Close":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Close","File":"manager.go","Line":200,"StartOffset":4874,"EndOffset":5010,"Content":"// Close stop persistent work for the manager, like GC\nfunc (self SessionManager) Close() {\n\tif self.tik != nil {\n\t\tself.tik.Stop()\n\t}\n}","Signature":"func (self SessionManager) Close()","Receiver":{"IsPointer":false,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}}},"SessionManager.GC":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GC","File":"manager.go","Line":163,"StartOffset":4014,"EndOffset":4549,"Content":"// GC sweep invalid sessions and release unused memory\nfunc (self SessionManager) GC() {\n\tif !atomic.CompareAndSwapUint32(\u0026self.inGC, 0, 1) {\n\t\treturn\n\t}\n\n\tfor _, shard := range self.shards {\n\t\tshard.lock.Lock()\n\t\tn := shard.m\n\t\tm := make(map[SessionID]Session, len(n))\n\t\tfor id, s := range n {\n\t\t\t// Warning: may panic here?\n\t\t\tif s.IsValid() {\n\t\t\t\tm[id] = s\n\t\t\t}\n\t\t}\n\t\t// atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(\u0026shard.m)), unsafe.Pointer(\u0026m))\n\t\tshard.m = m\n\t\tshard.lock.Unlock()\n\t}\n\n\tatomic.StoreUint32(\u0026self.inGC, 0)\n}","Signature":"func (self SessionManager) GC()","Receiver":{"IsPointer":false,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}},"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","File":"manager.go","Line":174,"StartOffset":4348,"EndOffset":4355}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"manager.go","Line":171,"StartOffset":4257,"EndOffset":4266},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"manager.go","Line":171,"StartOffset":4267,"EndOffset":4274}]},"SessionManager.GetSession":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GetSession","File":"manager.go","Line":115,"StartOffset":2768,"EndOffset":3288,"Content":"// Get gets specific session\n// or get inherited session if option EnableImplicitlyTransmitAsync is true\nfunc (self *SessionManager) GetSession(id SessionID) (Session, bool) {\n\tshard := self.shards[uint64(id)%uint64(self.opts.ShardNumber)]\n\tsession, ok := shard.Load(id)\n\tif ok {\n\t\treturn session, ok\n\t}\n\tif !self.opts.EnableImplicitlyTransmitAsync {\n\t\treturn nil, false\n\t}\n\n\tid, ok = getSessionID()\n\tif !ok {\n\t\treturn nil, false\n\t}\n\tshard = self.shards[uint64(id)%uint64(self.opts.ShardNumber)]\n\treturn shard.Load(id)\n}","Signature":"func (self *SessionManager) GetSession(id SessionID) (Session, bool)","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}},"Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"manager.go","Line":115,"StartOffset":2912,"EndOffset":2924}],"Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"manager.go","Line":115,"StartOffset":2927,"EndOffset":2934}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getSessionID","File":"manager.go","Line":125,"StartOffset":3153,"EndOffset":3165}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Load","File":"manager.go","Line":117,"StartOffset":3030,"EndOffset":3034}]},"SessionManager.Options":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Options","File":"manager.go","Line":83,"StartOffset":2140,"EndOffset":2252,"Content":"// Options shows the manager's Options\nfunc (self SessionManager) Options() ManagerOptions {\n\treturn self.opts\n}","Signature":"func (self SessionManager) Options() ManagerOptions","Receiver":{"IsPointer":false,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}},"Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","File":"manager.go","Line":83,"StartOffset":2216,"EndOffset":2230}]},"SessionManager.UnbindSession":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.UnbindSession","File":"manager.go","Line":149,"StartOffset":3575,"EndOffset":4012,"Content":"// UnbindSession clears current session\n//\n// Notice: If you want to end the session,\n// please call `Disable()` (or whatever make the session invalid)\n// on your session's implementation\nfunc (self *SessionManager) UnbindSession(id SessionID) {\n\tshard := self.shards[uint64(id)%uint64(self.opts.ShardNumber)]\n\n\t_, ok := shard.Load(id)\n\tif ok {\n\t\tshard.Delete(id)\n\t}\n\n\tif self.opts.EnableImplicitlyTransmitAsync {\n\t\tclearSessionID()\n\t}\n}","Signature":"func (self *SessionManager) UnbindSession(id SessionID)","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}},"Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"manager.go","Line":149,"StartOffset":3805,"EndOffset":3817}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"clearSessionID","File":"manager.go","Line":158,"StartOffset":3991,"EndOffset":4005}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Load","File":"manager.go","Line":152,"StartOffset":3902,"EndOffset":3906},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Delete","File":"manager.go","Line":154,"StartOffset":3928,"EndOffset":3934}]},"SessionManager.startGC":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.startGC","File":"manager.go","Line":187,"StartOffset":4551,"EndOffset":4872,"Content":"// startGC start a scheduled goroutine to call GC() according to GCInterval\nfunc (self *SessionManager) startGC() {\n\tif self.opts.GCInterval \u003c time.Second {\n\t\tpanic(\"GCInterval must be larger than 1 second\")\n\t}\n\tself.tik = time.NewTicker(self.opts.GCInterval)\n\tgo func() {\n\t\tfor range self.tik.C {\n\t\t\tself.GC()\n\t\t}\n\t}()\n}","Signature":"func (self *SessionManager) startGC()","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}},"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GC","File":"manager.go","Line":194,"StartOffset":4857,"EndOffset":4859}]},"SessionMap.Disable":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Disable","File":"session.go","Line":131,"StartOffset":3359,"EndOffset":3481,"Content":"// Disable ends the session\nfunc (self *SessionMap) Disable() {\n\tif self == nil {\n\t\treturn\n\t}\n\tself.enabled.Store(false)\n}","Signature":"func (self *SessionMap) Disable()","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}}},"SessionMap.Export":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Export","File":"session.go","Line":139,"StartOffset":3483,"EndOffset":3782,"Content":"// Export COPIES and exports underlying map\nfunc (self *SessionMap) Export() map[interface{}]interface{} {\n\tif self == nil {\n\t\treturn nil\n\t}\n\tm := make(map[interface{}]interface{}, len(self.storage))\n\tself.lock.RLock()\n\tfor k, v := range self.storage {\n\t\tm[k] = v\n\t}\n\tself.lock.RUnlock()\n\treturn m\n}","Signature":"func (self *SessionMap) Export() map[interface{}]interface{}","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}}},"SessionMap.Get":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Get","File":"session.go","Line":153,"StartOffset":3784,"EndOffset":3986,"Content":"// Get value for specific key\nfunc (self *SessionMap) Get(key interface{}) interface{} {\n\tif self == nil {\n\t\treturn nil\n\t}\n\tself.lock.RLock()\n\tval := self.storage[key]\n\tself.lock.RUnlock()\n\treturn val\n}","Signature":"func (self *SessionMap) Get(key interface{}) interface{}","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}}},"SessionMap.IsValid":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.IsValid","File":"session.go","Line":123,"StartOffset":3192,"EndOffset":3357,"Content":"// IsValid tells if the session is valid at present\nfunc (self *SessionMap) IsValid() bool {\n\tif self == nil {\n\t\treturn false\n\t}\n\treturn self.enabled.Load().(bool)\n}","Signature":"func (self *SessionMap) IsValid() bool","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}}},"SessionMap.WithValue":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.WithValue","File":"session.go","Line":164,"StartOffset":3988,"EndOffset":4215,"Content":"// Set value for specific key,and return itself\nfunc (self *SessionMap) WithValue(key, val interface{}) Session {\n\tif self == nil {\n\t\treturn nil\n\t}\n\tself.lock.Lock()\n\tself.storage[key] = val\n\tself.lock.Unlock()\n\treturn self\n}","Signature":"func (self *SessionMap) WithValue(key, val interface{}) Session","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}},"Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"session.go","Line":164,"StartOffset":4094,"EndOffset":4101}]},"UnbindSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","File":"gls.go","Line":129,"StartOffset":3459,"EndOffset":3866,"Content":"// UnbindSession unbind a session (if any) with current goroutine\n//\n// NOTICE: If you want to end the session,\n// please call `Disable()` (or whatever make the session invalid)\n// on your session's implementation\n//\n// NOTICE: MUST call `InitDefaultManager()` once before using this API\nfunc UnbindSession() {\n\tif defaultManagerObj == nil {\n\t\treturn\n\t}\n\tdefaultManagerObj.UnbindSession(SessionID(goID()))\n}","Signature":"func UnbindSession()","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"goID","File":"gls.go","Line":133,"StartOffset":3856,"EndOffset":3860}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.UnbindSession","File":"gls.go","Line":133,"StartOffset":3832,"EndOffset":3845}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"gls.go","Line":133,"StartOffset":3846,"EndOffset":3855}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","File":"gls.go","Line":130,"StartOffset":3774,"EndOffset":3791}]},"checkEnvOptions":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"checkEnvOptions","File":"gls.go","Line":77,"StartOffset":2279,"EndOffset":2906,"Content":"func checkEnvOptions(opts *ManagerOptions) {\n\tif env := os.Getenv(SESSION_CONFIG_KEY); env != \"\" {\n\t\tenvs := strings.Split(env, \",\")\n\t\t// parse first option as EnableTransparentTransmitAsync\n\t\tif strings.ToLower(envs[0]) == \"true\" {\n\t\t\topts.EnableImplicitlyTransmitAsync = true\n\t\t}\n\n\t\t// parse first option as ShardNumber\n\t\tif len(envs) \u003e 1 {\n\t\t\tif opt, err := strconv.Atoi(envs[1]); err == nil {\n\t\t\t\topts.ShardNumber = opt\n\t\t\t}\n\t\t}\n\n\t\t// parse third option as EnableTransparentTransmitAsync\n\t\tif len(envs) \u003e 2 {\n\t\t\tif d, err := time.ParseDuration(envs[2]); err == nil \u0026\u0026 d \u003e time.Second {\n\t\t\t\topts.GCInterval = d\n\t\t\t}\n\t\t}\n\t}\n}","Signature":"func checkEnvOptions(opts *ManagerOptions)","Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","File":"gls.go","Line":77,"StartOffset":2300,"EndOffset":2320}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SESSION_CONFIG_KEY","File":"gls.go","Line":78,"StartOffset":2345,"EndOffset":2363}]},"clearSessionID":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"clearSessionID","File":"stubs.go","Line":77,"StartOffset":1687,"EndOffset":1948,"Content":"func clearSessionID() {\n\tm := getPproLabel()\n\tif m == nil {\n\t\treturn\n\t}\n\tif _, ok := (*m)[Pprof_Label_Session_ID]; !ok {\n\t\treturn\n\t}\n\tn := make(labelMap, len(*m))\n\tfor k, v := range *m {\n\t\tif k != Pprof_Label_Session_ID {\n\t\t\tn[k] = v\n\t\t}\n\t}\n\tsetPprofLabel(\u0026n)\n}","Signature":"func clearSessionID()","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getPproLabel","File":"stubs.go","Line":78,"StartOffset":1717,"EndOffset":1729},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"setPprofLabel","File":"stubs.go","Line":91,"StartOffset":1929,"EndOffset":1942}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"labelMap","File":"stubs.go","Line":85,"StartOffset":1831,"EndOffset":1839}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Pprof_Label_Session_ID","File":"stubs.go","Line":82,"StartOffset":1777,"EndOffset":1799}]},"getPproLabel":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getPproLabel","File":"stubs.go","Line":38,"StartOffset":931,"EndOffset":1022,"Content":"//go:linkname getPproLabel runtime/pprof.runtime_getProfLabel\nfunc getPproLabel() *labelMap","Signature":"func getPproLabel() *labelMap","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"labelMap","File":"stubs.go","Line":38,"StartOffset":1013,"EndOffset":1022}]},"getSessionID":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getSessionID","File":"stubs.go","Line":61,"StartOffset":1396,"EndOffset":1685,"Content":"func getSessionID() (SessionID, bool) {\n\tm := getPproLabel()\n\tif m == nil {\n\t\treturn 0, false\n\t}\n\tif v, ok := (*m)[Pprof_Label_Session_ID]; !ok {\n\t\treturn 0, false\n\t} else {\n\t\tid, err := strconv.ParseInt(v, 10, 64)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\t\treturn SessionID(id), true\n\t}\n}","Signature":"func getSessionID() (SessionID, bool)","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"stubs.go","Line":61,"StartOffset":1417,"EndOffset":1426}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getPproLabel","File":"stubs.go","Line":62,"StartOffset":1442,"EndOffset":1454}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"stubs.go","Line":73,"StartOffset":1661,"EndOffset":1670}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Pprof_Label_Session_ID","File":"stubs.go","Line":66,"StartOffset":1511,"EndOffset":1533}]},"goID":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"goID","File":"stubs.go","Line":24,"StartOffset":681,"EndOffset":800,"Content":"//go:nocheckptr\nfunc goID() uint64 {\n\tgid, err := runtimex.GID()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn uint64(gid)\n}","Signature":"func goID() uint64","FunctionCalls":[{"ModPath":"github.com/cloudwego/runtimex@v0.1.1","PkgPath":"github.com/cloudwego/runtimex","Name":"GID","File":"stubs.go","Line":25,"StartOffset":740,"EndOffset":743}]},"newShard":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"newShard","File":"manager.go","Line":55,"StartOffset":1523,"EndOffset":1634,"Content":"func newShard() *shard {\n\tret := new(shard)\n\tret.m = make(map[SessionID]Session, defaultShardCap)\n\treturn ret\n}","Signature":"func newShard() *shard","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard","File":"manager.go","Line":55,"StartOffset":1539,"EndOffset":1545}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard","File":"manager.go","Line":56,"StartOffset":1560,"EndOffset":1565},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"manager.go","Line":57,"StartOffset":1585,"EndOffset":1594},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"manager.go","Line":57,"StartOffset":1595,"EndOffset":1602}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultShardCap","File":"manager.go","Line":57,"StartOffset":1604,"EndOffset":1619}]},"setPprofLabel":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"setPprofLabel","File":"stubs.go","Line":35,"StartOffset":835,"EndOffset":929,"Content":"//go:linkname setPprofLabel runtime/pprof.runtime_setProfLabel\nfunc setPprofLabel(m *labelMap)","Signature":"func setPprofLabel(m *labelMap)","Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"labelMap","File":"stubs.go","Line":35,"StartOffset":917,"EndOffset":928}]},"shard.Delete":{"Exported":false,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Delete","File":"manager.go","Line":107,"StartOffset":2677,"EndOffset":2766,"Content":"func (s *shard) Delete(id SessionID) {\n\ts.lock.Lock()\n\tdelete(s.m, id)\n\ts.lock.Unlock()\n}","Signature":"func (s *shard) Delete(id SessionID)","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}},"Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"manager.go","Line":107,"StartOffset":2700,"EndOffset":2712}]},"shard.Load":{"Exported":false,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Load","File":"manager.go","Line":90,"StartOffset":2319,"EndOffset":2576,"Content":"func (s *shard) Load(id SessionID) (Session, bool) {\n\ts.lock.RLock()\n\n\t// p := atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(\u0026s.m)))\n\t// m := *(*map[SessionID]Session)(unsafe.Pointer(p))\n\n\tsession, ok := s.m[id]\n\ts.lock.RUnlock()\n\treturn session, ok\n}","Signature":"func (s *shard) Load(id SessionID) (Session, bool)","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}},"Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"manager.go","Line":90,"StartOffset":2340,"EndOffset":2352}],"Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"manager.go","Line":90,"StartOffset":2355,"EndOffset":2362}]},"shard.Store":{"Exported":false,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Store","File":"manager.go","Line":101,"StartOffset":2578,"EndOffset":2675,"Content":"func (s *shard) Store(id SessionID, se Session) {\n\ts.lock.Lock()\n\ts.m[id] = se\n\ts.lock.Unlock()\n}","Signature":"func (s *shard) Store(id SessionID, se Session)","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}},"Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"manager.go","Line":101,"StartOffset":2600,"EndOffset":2612},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"manager.go","Line":101,"StartOffset":2614,"EndOffset":2624}]},"transmitSessionID":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"transmitSessionID","File":"stubs.go","Line":42,"StartOffset":1072,"EndOffset":1394,"Content":"func transmitSessionID(id SessionID) {\n\tm := getPproLabel()\n\n\tvar n labelMap\n\tif m == nil {\n\t\tn = make(labelMap)\n\t} else {\n\t\tn = make(labelMap, len(*m))\n\t\tfor k, v := range *m {\n\t\t\tif k != Pprof_Label_Session_ID {\n\t\t\t\tn[k] = v\n\t\t\t}\n\t\t}\n\t}\n\n\tn[Pprof_Label_Session_ID] = strconv.FormatInt(int64(id), 10)\n\tsetPprofLabel(\u0026n)\n}","Signature":"func transmitSessionID(id SessionID)","Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"stubs.go","Line":42,"StartOffset":1095,"EndOffset":1107}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getPproLabel","File":"stubs.go","Line":43,"StartOffset":1117,"EndOffset":1129},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"setPprofLabel","File":"stubs.go","Line":58,"StartOffset":1375,"EndOffset":1388}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"labelMap","File":"stubs.go","Line":45,"StartOffset":1140,"EndOffset":1148}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Pprof_Label_Session_ID","File":"stubs.go","Line":51,"StartOffset":1261,"EndOffset":1283}]}},"Types":{"ManagerOptions":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","File":"manager.go","Line":24,"StartOffset":697,"EndOffset":1270,"Content":"// ManagerOptions for SessionManager\ntype ManagerOptions struct {\n\t// EnableImplicitlyTransmitAsync enables transparently transmit\n\t// current session to children goroutines\n\t//\n\t// WARNING: Once this option enables, if you want to use `pprof.Do()`, it must be called before `BindSession()`,\n\t// otherwise transmitting will be disfunctional\n\tEnableImplicitlyTransmitAsync bool\n\n\t// ShardNumber is used to shard session id, it must be larger than zero\n\tShardNumber int\n\n\t// GCInterval decides the GC interval for SessionManager,\n\t// it must be larger than 1s or zero means disable GC\n\tGCInterval time.Duration\n}"},"Session":{"Exported":true,"TypeKind":"interface","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"session.go","Line":25,"StartOffset":725,"EndOffset":1027,"Content":"// Session represents a local storage for one session\ntype Session interface {\n\t// IsValid tells if the session is valid at present\n\tIsValid() bool\n\n\t// Get returns value for specific key\n\tGet(key interface{}) interface{}\n\n\t// WithValue sets value for specific key,and return newly effective session\n\tWithValue(key interface{}, val interface{}) Session\n}","Methods":{"Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get"},"IsValid":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid"},"WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue"}}},"SessionCtx":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","File":"session.go","Line":38,"StartOffset":1149,"EndOffset":1223,"Content":"// SessionCtx implements Session with context,\n// which means children session WON'T affect parent and sibling sessions\ntype SessionCtx struct {\n\tenabled *atomic.Value\n\tstorage context.Context\n}","Methods":{"Disable":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Disable"},"Export":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Export"},"Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Get"},"IsValid":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.IsValid"},"WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.WithValue"}},"Implements":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"}]},"SessionID":{"Exported":true,"TypeKind":"typedef","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"manager.go","Line":88,"StartOffset":2296,"EndOffset":2317,"Content":"// SessionID is the identity of a session\ntype SessionID uint64"},"SessionManager":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager","File":"manager.go","Line":46,"StartOffset":1389,"EndOffset":1495,"Content":"// SessionManager maintain and manage sessions\ntype SessionManager struct {\n\tshards []*shard\n\tinGC uint32\n\ttik *time.Ticker\n\topts ManagerOptions\n}","SubStruct":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","File":"manager.go","Line":50,"StartOffset":1479,"EndOffset":1493}],"Methods":{"BindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.BindSession"},"Close":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Close"},"GC":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GC"},"GetSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GetSession"},"Options":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Options"},"UnbindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.UnbindSession"},"startGC":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.startGC"}}},"SessionMap":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap","File":"session.go","Line":95,"StartOffset":2566,"EndOffset":2674,"Content":"// NewSessionMap implements Session with map,\n// which means children session WILL affect parent session and sibling sessions\ntype SessionMap struct {\n\tenabled *atomic.Value\n\tstorage map[interface{}]interface{}\n\tlock sync.RWMutex\n}","Methods":{"Disable":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Disable"},"Export":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Export"},"Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Get"},"IsValid":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.IsValid"},"WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.WithValue"}},"Implements":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"}]},"labelMap":{"Exported":false,"TypeKind":"typedef","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"labelMap","File":"stubs.go","Line":32,"StartOffset":802,"EndOffset":833,"Content":"type labelMap map[string]string"},"shard":{"Exported":false,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard","File":"manager.go","Line":40,"StartOffset":1272,"EndOffset":1340,"Content":"type shard struct {\n\tlock sync.RWMutex\n\tm map[SessionID]Session\n}","SubStruct":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"manager.go","Line":42,"StartOffset":1317,"EndOffset":1338}],"Methods":{"Delete":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Delete"},"Load":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Load"},"Store":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Store"}}}},"Vars":{"Pprof_Label_Session_ID":{"IsExported":true,"IsConst":true,"IsPointer":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Pprof_Label_Session_ID","File":"stubs.go","Line":40,"StartOffset":1030,"EndOffset":1070,"Type":{"ModPath":"","PkgPath":"","Name":"untyped string"},"Content":"const Pprof_Label_Session_ID untyped string = \"go_session_id\""},"SESSION_CONFIG_KEY":{"IsExported":true,"IsConst":true,"IsPointer":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SESSION_CONFIG_KEY","File":"gls.go","Line":34,"StartOffset":1142,"EndOffset":1193,"Type":{"ModPath":"","PkgPath":"","Name":"untyped string"},"Content":"// SESSION_CONFIG_KEY is the env key for configuring default session manager.\n//\n//\tValue format: [EnableImplicitlyTransmitAsync][,ShardNumber][,GCInterval]\n//\t- EnableImplicitlyTransmitAsync: 'true' means enabled, otherwist means disabled\n//\t- ShardNumber: integer \u003e 0\n//\t- GCInterval: Golang time.Duration format, such as '10m' means ten minutes for each GC\n//\n// Once the key is set, default option values will be set if the option value doesn't exist.\nconst SESSION_CONFIG_KEY untyped string = \"CLOUDWEGO_SESSION_CONFIG_KEY\""},"defaultManagerObj":{"IsExported":false,"IsConst":false,"IsPointer":true,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","File":"gls.go","Line":37,"StartOffset":1202,"EndOffset":1236,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"},"Content":"var defaultManagerObj *SessionManager"},"defaultManagerOnce":{"IsExported":false,"IsConst":false,"IsPointer":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerOnce","File":"gls.go","Line":38,"StartOffset":1238,"EndOffset":1266,"Type":{"ModPath":"","PkgPath":"sync","Name":"Once"},"Content":"var defaultManagerOnce sync.Once"},"defaultShardCap":{"IsExported":false,"IsConst":false,"IsPointer":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultShardCap","File":"manager.go","Line":53,"StartOffset":1501,"EndOffset":1521,"Type":{"ModPath":"","PkgPath":"","Name":"int"},"Content":"var defaultShardCap int = 10"}}},"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]":{"IsMain":false,"IsTest":true,"PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Functions":{"ASSERT":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ASSERT","File":"example_test.go","Line":24,"StartOffset":673,"EndOffset":729,"Content":"func ASSERT(v bool) {\n\tif !v {\n\t\tpanic(\"not true!\")\n\t}\n}","Signature":"func ASSERT(v bool)"},"BenchmarkGLS_Get":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Get","File":"api_test.go","Line":548,"StartOffset":12073,"EndOffset":12559,"Content":"func BenchmarkGLS_Get(b *testing.B) {\n\ts := NewSessionCtx(context.Background())\n\tvar ss Session = s\n\tfor i := 0; i \u003c N; i++ {\n\t\tss = ss.WithValue(i, i)\n\t}\n\n\tb.Run(\"sync\", func(b *testing.B) {\n\t\tBindSession(ss)\n\t\tfor i := 0; i \u003c b.N; i++ {\n\t\t\t_ = mustCurSession().Get(N / 2)\n\t\t}\n\t\tUnbindSession()\n\t})\n\n\tb.Run(\"parallel\", func(b *testing.B) {\n\t\tb.RunParallel(func(p *testing.PB) {\n\t\t\tBindSession(ss)\n\t\t\tfor p.Next() {\n\t\t\t\t_ = mustCurSession().Get(N / 2)\n\t\t\t}\n\t\t\tUnbindSession()\n\t\t})\n\t})\n}","Signature":"func BenchmarkGLS_Get(b *testing.B)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"api_test.go","Line":549,"StartOffset":12117,"EndOffset":12130},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"api_test.go","Line":556,"StartOffset":12267,"EndOffset":12278},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","File":"api_test.go","Line":558,"StartOffset":12319,"EndOffset":12333},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","File":"api_test.go","Line":560,"StartOffset":12353,"EndOffset":12366}],"MethodCalls":[{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","File":"api_test.go","Line":558,"StartOffset":12336,"EndOffset":12339}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","File":"api_test.go","Line":550,"StartOffset":12161,"EndOffset":12168}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","File":"api_test.go","Line":551,"StartOffset":12190,"EndOffset":12191}]},"BenchmarkGLS_Set":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Set","File":"api_test.go","Line":574,"StartOffset":12561,"EndOffset":13082,"Content":"func BenchmarkGLS_Set(b *testing.B) {\n\ts := NewSessionCtx(context.Background())\n\tvar ss Session = s\n\n\tfor i := 0; i \u003c N; i++ {\n\t\tss = ss.WithValue(i, i)\n\t}\n\n\tb.Run(\"sync\", func(b *testing.B) {\n\t\tBindSession(ss)\n\t\tfor i := 0; i \u003c b.N; i++ {\n\t\t\tBindSession(mustCurSession().WithValue(N/2, -1))\n\t\t}\n\t\tUnbindSession()\n\t})\n\n\tb.Run(\"parallel\", func(b *testing.B) {\n\t\tb.RunParallel(func(p *testing.PB) {\n\t\t\tBindSession(ss)\n\t\t\tfor p.Next() {\n\t\t\t\tBindSession(mustCurSession().WithValue(N/2, -1))\n\t\t\t}\n\t\t\tUnbindSession()\n\t\t})\n\t})\n}","Signature":"func BenchmarkGLS_Set(b *testing.B)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"api_test.go","Line":575,"StartOffset":12605,"EndOffset":12618},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"api_test.go","Line":583,"StartOffset":12756,"EndOffset":12767},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","File":"api_test.go","Line":585,"StartOffset":12816,"EndOffset":12830},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","File":"api_test.go","Line":587,"StartOffset":12859,"EndOffset":12872}],"MethodCalls":[{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","File":"api_test.go","Line":585,"StartOffset":12833,"EndOffset":12842}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","File":"api_test.go","Line":576,"StartOffset":12649,"EndOffset":12656}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","File":"api_test.go","Line":578,"StartOffset":12679,"EndOffset":12680}]},"BenchmarkLoops":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkLoops","File":"api_test.go","Line":630,"StartOffset":13770,"EndOffset":13883,"Content":"func BenchmarkLoops(b *testing.B) {\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tfor b := 0; b \u003c 100000; b++ {\n\t\t\t_ = b\n\t\t}\n\t}\n}","Signature":"func BenchmarkLoops(b *testing.B)"},"BenchmarkSessionCtx_Get":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionCtx_Get","File":"api_test.go","Line":482,"StartOffset":10854,"EndOffset":11245,"Content":"func BenchmarkSessionCtx_Get(b *testing.B) {\n\ts := NewSessionCtx(context.Background())\n\tvar ss Session = s\n\tfor i := 0; i \u003c N; i++ {\n\t\tss = ss.WithValue(i, i)\n\t}\n\n\tb.Run(\"sync\", func(b *testing.B) {\n\t\tfor i := 0; i \u003c b.N; i++ {\n\t\t\t_ = ss.Get(N / 2)\n\t\t}\n\t})\n\n\tb.Run(\"parallel\", func(b *testing.B) {\n\t\tb.RunParallel(func(p *testing.PB) {\n\t\t\tfor p.Next() {\n\t\t\t\t_ = ss.Get(N / 2)\n\t\t\t}\n\t\t})\n\t})\n}","Signature":"func BenchmarkSessionCtx_Get(b *testing.B)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"api_test.go","Line":483,"StartOffset":10905,"EndOffset":10918}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","File":"api_test.go","Line":484,"StartOffset":10949,"EndOffset":10956}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","File":"api_test.go","Line":485,"StartOffset":10978,"EndOffset":10979}]},"BenchmarkSessionCtx_WithValue":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionCtx_WithValue","File":"api_test.go","Line":460,"StartOffset":10439,"EndOffset":10852,"Content":"func BenchmarkSessionCtx_WithValue(b *testing.B) {\n\ts := NewSessionCtx(context.Background())\n\tvar ss Session = s\n\tfor i := 0; i \u003c N; i++ {\n\t\tss = ss.WithValue(i, i)\n\t}\n\n\tb.Run(\"sync\", func(b *testing.B) {\n\t\tfor i := 0; i \u003c b.N; i++ {\n\t\t\t_ = ss.WithValue(N/2, -1)\n\t\t}\n\t})\n\n\tb.Run(\"parallel\", func(b *testing.B) {\n\t\tb.RunParallel(func(p *testing.PB) {\n\t\t\tfor p.Next() {\n\t\t\t\t_ = ss.WithValue(N/2, -1)\n\t\t\t}\n\t\t})\n\t})\n}","Signature":"func BenchmarkSessionCtx_WithValue(b *testing.B)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"api_test.go","Line":461,"StartOffset":10496,"EndOffset":10509}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","File":"api_test.go","Line":462,"StartOffset":10540,"EndOffset":10547}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","File":"api_test.go","Line":463,"StartOffset":10569,"EndOffset":10570}]},"BenchmarkSessionManager_BindSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionManager_BindSession","File":"api_test.go","Line":442,"StartOffset":10115,"EndOffset":10437,"Content":"func BenchmarkSessionManager_BindSession(b *testing.B) {\n\ts := NewSessionCtx(context.Background())\n\n\tb.Run(\"sync\", func(b *testing.B) {\n\t\tfor i := 0; i \u003c b.N; i++ {\n\t\t\tBindSession(s)\n\t\t}\n\t})\n\n\tb.Run(\"parallel\", func(b *testing.B) {\n\t\tb.RunParallel(func(p *testing.PB) {\n\t\t\tfor p.Next() {\n\t\t\t\tBindSession(s)\n\t\t\t}\n\t\t})\n\t})\n}","Signature":"func BenchmarkSessionManager_BindSession(b *testing.B)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"api_test.go","Line":443,"StartOffset":10178,"EndOffset":10191},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"api_test.go","Line":447,"StartOffset":10283,"EndOffset":10294}]},"BenchmarkSessionManager_CurSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionManager_CurSession","File":"api_test.go","Line":420,"StartOffset":9708,"EndOffset":10113,"Content":"func BenchmarkSessionManager_CurSession(b *testing.B) {\n\ts := NewSessionCtx(context.Background())\n\n\tb.Run(\"sync\", func(b *testing.B) {\n\t\tBindSession(s)\n\t\tfor i := 0; i \u003c b.N; i++ {\n\t\t\t_ = mustCurSession()\n\t\t}\n\t\tUnbindSession()\n\t})\n\n\tb.Run(\"parallel\", func(b *testing.B) {\n\t\tb.RunParallel(func(p *testing.PB) {\n\t\t\tBindSession(s)\n\t\t\tfor p.Next() {\n\t\t\t\t_ = mustCurSession()\n\t\t\t}\n\t\t\tUnbindSession()\n\t\t})\n\t})\n}","Signature":"func BenchmarkSessionManager_CurSession(b *testing.B)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"api_test.go","Line":421,"StartOffset":9770,"EndOffset":9783},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"api_test.go","Line":424,"StartOffset":9845,"EndOffset":9856},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","File":"api_test.go","Line":426,"StartOffset":9896,"EndOffset":9910},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","File":"api_test.go","Line":428,"StartOffset":9919,"EndOffset":9932}]},"BenchmarkSessionMap_Get":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionMap_Get","File":"api_test.go","Line":526,"StartOffset":11671,"EndOffset":12071,"Content":"func BenchmarkSessionMap_Get(b *testing.B) {\n\ts := NewSessionMap(map[interface{}]interface{}{})\n\tvar ss Session = s\n\tfor i := 0; i \u003c N; i++ {\n\t\tss = ss.WithValue(i, i)\n\t}\n\n\tb.Run(\"sync\", func(b *testing.B) {\n\t\tfor i := 0; i \u003c b.N; i++ {\n\t\t\t_ = ss.Get(N / 2)\n\t\t}\n\t})\n\n\tb.Run(\"parallel\", func(b *testing.B) {\n\t\tb.RunParallel(func(p *testing.PB) {\n\t\t\tfor p.Next() {\n\t\t\t\t_ = ss.Get(N / 2)\n\t\t\t}\n\t\t})\n\t})\n}","Signature":"func BenchmarkSessionMap_Get(b *testing.B)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","File":"api_test.go","Line":527,"StartOffset":11722,"EndOffset":11735}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","File":"api_test.go","Line":528,"StartOffset":11775,"EndOffset":11782}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","File":"api_test.go","Line":529,"StartOffset":11804,"EndOffset":11805}]},"BenchmarkSessionMap_WithValue":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionMap_WithValue","File":"api_test.go","Line":504,"StartOffset":11247,"EndOffset":11669,"Content":"func BenchmarkSessionMap_WithValue(b *testing.B) {\n\ts := NewSessionMap(map[interface{}]interface{}{})\n\tvar ss Session = s\n\tfor i := 0; i \u003c N; i++ {\n\t\tss = ss.WithValue(i, i)\n\t}\n\n\tb.Run(\"sync\", func(b *testing.B) {\n\t\tfor i := 0; i \u003c b.N; i++ {\n\t\t\t_ = ss.WithValue(N/2, -1)\n\t\t}\n\t})\n\n\tb.Run(\"parallel\", func(b *testing.B) {\n\t\tb.RunParallel(func(p *testing.PB) {\n\t\t\tfor p.Next() {\n\t\t\t\t_ = ss.WithValue(N/2, -1)\n\t\t\t}\n\t\t})\n\t})\n}","Signature":"func BenchmarkSessionMap_WithValue(b *testing.B)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","File":"api_test.go","Line":505,"StartOffset":11304,"EndOffset":11317}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","File":"api_test.go","Line":506,"StartOffset":11357,"EndOffset":11364}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","File":"api_test.go","Line":507,"StartOffset":11386,"EndOffset":11387}]},"BindSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"gls.go","Line":115,"StartOffset":3200,"EndOffset":3457,"Content":"// BindSession binds the session with current goroutine\n//\n// NOTICE: MUST call `InitDefaultManager()` once before using this API\nfunc BindSession(s Session) {\n\tif defaultManagerObj == nil {\n\t\treturn\n\t}\n\tdefaultManagerObj.BindSession(SessionID(goID()), s)\n}","Signature":"func BindSession(s Session)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","File":"gls.go","Line":119,"StartOffset":3444,"EndOffset":3448}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","File":"gls.go","Line":119,"StartOffset":3434,"EndOffset":3443}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","File":"gls.go","Line":116,"StartOffset":3364,"EndOffset":3381}]},"CurSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","File":"gls.go","Line":104,"StartOffset":2908,"EndOffset":3198,"Content":"// CurSession gets the session for current goroutine\n//\n// NOTICE: MUST call `InitDefaultManager()` once before using this API\nfunc CurSession() (Session, bool) {\n\tif defaultManagerObj == nil {\n\t\treturn nil, false\n\t}\n\ts, ok := defaultManagerObj.GetSession(SessionID(goID()))\n\treturn s, ok\n}","Signature":"func CurSession() (Session, bool)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","File":"gls.go","Line":108,"StartOffset":3174,"EndOffset":3178}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","File":"gls.go","Line":108,"StartOffset":3164,"EndOffset":3173}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","File":"gls.go","Line":105,"StartOffset":3075,"EndOffset":3092}]},"DefaultManagerOptions":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"DefaultManagerOptions","File":"gls.go","Line":42,"StartOffset":1270,"EndOffset":1546,"Content":"// DefaultManagerOptions returns default options for the default manager\nfunc DefaultManagerOptions() ManagerOptions {\n\treturn ManagerOptions{\n\t\tShardNumber: 100,\n\t\tGCInterval: time.Minute * 10,\n\t\tEnableImplicitlyTransmitAsync: false,\n\t}\n}","Signature":"func DefaultManagerOptions() ManagerOptions","Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","File":"gls.go","Line":43,"StartOffset":1397,"EndOffset":1411}]},"ExampleSessionCtx":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","File":"example_test.go","Line":85,"StartOffset":2059,"EndOffset":4355,"Content":"func ExampleSessionCtx() {\n\t// initialize default manager first\n\tInitDefaultManager(DefaultManagerOptions())\n\n\tvar ctx = context.Background()\n\tvar key, v = \"a\", \"b\"\n\tvar key2, v2 = \"c\", \"d\"\n\tvar sig = make(chan struct{})\n\tvar sig2 = make(chan struct{})\n\n\t// initialize new session with context\n\tvar session = NewSessionCtx(ctx) // implementation...\n\n\t// set specific key-value and update session\n\tstart := session.WithValue(key, v)\n\n\t// set current session\n\tBindSession(start)\n\n\t// pass to new goroutine...\n\tGo(func() {\n\t\t// read specific key under current session\n\t\tval := GetCurSession().Get(key) // val exists\n\t\tASSERT(val == v)\n\t\t// doSomething....\n\n\t\t// set specific key-value under current session\n\t\t// NOTICE: current session won't change here\n\t\tnext := GetCurSession().WithValue(key2, v2)\n\t\tval2 := GetCurSession().Get(key2) // val2 == nil\n\t\tASSERT(val2 == nil)\n\n\t\t// pass both parent session and new session to sub goroutine\n\t\tGoSession(next, func() {\n\t\t\t// read specific key under current session\n\t\t\tval := GetCurSession().Get(key) // val exists\n\t\t\tASSERT(val == v)\n\n\t\t\tval2 := GetCurSession().Get(key2) // val2 exists\n\t\t\tASSERT(val2 == v2)\n\t\t\t// doSomething....\n\n\t\t\tsig2 \u003c- struct{}{}\n\n\t\t\t\u003c-sig\n\t\t\tASSERT(GetCurSession().IsValid() == false) // current session is invalid\n\n\t\t\tprintln(\"g2 done\")\n\t\t\tsig2 \u003c- struct{}{}\n\t\t})\n\n\t\tGo(func() {\n\t\t\t// read specific key under current session\n\t\t\tval := GetCurSession().Get(key) // val exists\n\t\t\tASSERT(v == val)\n\n\t\t\tval2 := GetCurSession().Get(key2) // val2 == nil\n\t\t\tASSERT(val2 == nil)\n\t\t\t// doSomething....\n\n\t\t\tsig2 \u003c- struct{}{}\n\n\t\t\t\u003c-sig\n\t\t\tASSERT(GetCurSession().IsValid() == false) // current session is invalid\n\n\t\t\tprintln(\"g3 done\")\n\t\t\tsig2 \u003c- struct{}{}\n\t\t})\n\n\t\tBindSession(next)\n\t\tval2 = GetCurSession().Get(key2) // val2 exists\n\t\tASSERT(v2 == val2)\n\n\t\tsig2 \u003c- struct{}{}\n\n\t\t\u003c-sig\n\t\tASSERT(next.IsValid() == false) // next is invalid\n\n\t\tprintln(\"g1 done\")\n\t\tsig2 \u003c- struct{}{}\n\t})\n\n\t\u003c-sig2\n\t\u003c-sig2\n\t\u003c-sig2\n\n\tval2 := GetCurSession().Get(key2) // val2 == nil\n\tASSERT(val2 == nil)\n\n\t// initiatively ends the session,\n\t// then all the inherited session (including next) will be disabled\n\tsession.Disable()\n\tclose(sig)\n\n\tASSERT(start.IsValid() == false) // start is invalid\n\n\t\u003c-sig2\n\t\u003c-sig2\n\t\u003c-sig2\n\tprintln(\"g0 done\")\n\n\tUnbindSession()\n}","Signature":"func ExampleSessionCtx()","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","File":"example_test.go","Line":87,"StartOffset":2124,"EndOffset":2142},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"DefaultManagerOptions","File":"example_test.go","Line":87,"StartOffset":2143,"EndOffset":2164},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"example_test.go","Line":96,"StartOffset":2368,"EndOffset":2381},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"example_test.go","Line":102,"StartOffset":2517,"EndOffset":2528},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Go","File":"example_test.go","Line":105,"StartOffset":2567,"EndOffset":2569},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GetCurSession","File":"example_test.go","Line":107,"StartOffset":2633,"EndOffset":2646},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ASSERT","File":"example_test.go","Line":108,"StartOffset":2674,"EndOffset":2680},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","File":"example_test.go","Line":118,"StartOffset":2995,"EndOffset":3004},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","File":"example_test.go","Line":186,"StartOffset":4338,"EndOffset":4351}],"MethodCalls":[{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","File":"example_test.go","Line":107,"StartOffset":2649,"EndOffset":2652},{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","File":"example_test.go","Line":113,"StartOffset":2836,"EndOffset":2845},{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","File":"example_test.go","Line":130,"StartOffset":3291,"EndOffset":3298}]},"ExampleSessionCtx_EnableImplicitlyTransmitAsync":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx_EnableImplicitlyTransmitAsync","File":"example_test.go","Line":38,"StartOffset":849,"EndOffset":2057,"Content":"func ExampleSessionCtx_EnableImplicitlyTransmitAsync() {\n\t// EnableImplicitlyTransmitAsync must be true\n\tInitDefaultManager(ManagerOptions{\n\t\tShardNumber: 10,\n\t\tEnableImplicitlyTransmitAsync: true,\n\t\tGCInterval: time.Hour,\n\t})\n\n\t// WARNING: pprof.Do() must be called before BindSession(),\n\t// otherwise transparently transmitting session will be dysfunctional\n\tlabels := pprof.Labels(\"c\", \"d\")\n\tpprof.Do(context.Background(), labels, func(ctx context.Context) {})\n\n\ts := NewSessionMap(map[interface{}]interface{}{\n\t\t\"a\": \"b\",\n\t})\n\tBindSession(s)\n\n\t// WARNING: pprof.Do() must be called before BindSession(),\n\t// otherwise transparently transmitting session will be dysfunctional\n\t// labels := pprof.Labels(\"c\", \"d\")\n\t// pprof.Do(context.Background(), labels, func(ctx context.Context){})\n\n\twg := sync.WaitGroup{}\n\twg.Add(3)\n\tgo func() {\n\t\tdefer wg.Done()\n\t\tASSERT(\"b\" == mustCurSession().Get(\"a\"))\n\n\t\tgo func() {\n\t\t\tdefer wg.Done()\n\t\t\tASSERT(\"b\" == mustCurSession().Get(\"a\"))\n\t\t}()\n\n\t\tASSERT(\"b\" == mustCurSession().Get(\"a\"))\n\t\tUnbindSession()\n\t\tASSERT(nil == mustCurSession())\n\n\t\tgo func() {\n\t\t\tdefer wg.Done()\n\t\t\tASSERT(nil == mustCurSession())\n\t\t}()\n\n\t}()\n\twg.Wait()\n}","Signature":"func ExampleSessionCtx_EnableImplicitlyTransmitAsync()","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","File":"example_test.go","Line":40,"StartOffset":954,"EndOffset":972},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","File":"example_test.go","Line":51,"StartOffset":1357,"EndOffset":1370},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"example_test.go","Line":54,"StartOffset":1417,"EndOffset":1428},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ASSERT","File":"example_test.go","Line":65,"StartOffset":1743,"EndOffset":1749},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","File":"example_test.go","Line":65,"StartOffset":1757,"EndOffset":1771},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","File":"example_test.go","Line":73,"StartOffset":1914,"EndOffset":1927}],"MethodCalls":[{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","File":"example_test.go","Line":65,"StartOffset":1774,"EndOffset":1777}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","File":"example_test.go","Line":40,"StartOffset":973,"EndOffset":987}]},"GetCurSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GetCurSession","File":"example_test.go","Line":30,"StartOffset":731,"EndOffset":847,"Content":"func GetCurSession() Session {\n\ts, ok := CurSession()\n\tif !ok {\n\t\tpanic(\"can't get current session!\")\n\t}\n\treturn s\n}","Signature":"func GetCurSession() Session","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","File":"example_test.go","Line":31,"StartOffset":772,"EndOffset":782}]},"GetDefaultManager":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GetDefaultManager","File":"gls.go","Line":51,"StartOffset":1548,"EndOffset":1667,"Content":"// GetDefaultManager returns the default manager\nfunc GetDefaultManager() *SessionManager {\n\treturn defaultManagerObj\n}","Signature":"func GetDefaultManager() *SessionManager","GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","File":"gls.go","Line":52,"StartOffset":1648,"EndOffset":1665}]},"Go":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Go","File":"gls.go","Line":137,"StartOffset":3868,"EndOffset":4049,"Content":"// Go calls f asynchronously and pass caller's session to the new goroutine\nfunc Go(f func()) {\n\ts, ok := CurSession()\n\tif !ok {\n\t\tGoSession(nil, f)\n\t} else {\n\t\tGoSession(s, f)\n\t}\n}","Signature":"func Go(f func())","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","File":"gls.go","Line":138,"StartOffset":3974,"EndOffset":3984},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","File":"gls.go","Line":140,"StartOffset":3999,"EndOffset":4008}]},"GoSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","File":"gls.go","Line":147,"StartOffset":4051,"EndOffset":4361,"Content":"// SessionGo calls f asynchronously and pass s session to the new goroutine\nfunc GoSession(s Session, f func()) {\n\tgo func() {\n\t\tdefer func() {\n\t\t\tif v := recover(); v != nil {\n\t\t\t\tprintln(fmt.Sprintf(\"GoSession recover: %v\", v))\n\t\t\t}\n\t\t\tUnbindSession()\n\t\t}()\n\t\tif s != nil {\n\t\t\tBindSession(s)\n\t\t}\n\t\tf()\n\t}()\n}","Signature":"func GoSession(s Session, f func())","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","File":"gls.go","Line":153,"StartOffset":4289,"EndOffset":4302},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"gls.go","Line":156,"StartOffset":4330,"EndOffset":4341}]},"InitDefaultManager":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","File":"gls.go","Line":64,"StartOffset":1669,"EndOffset":2277,"Content":"// InitDefaultManager update and restart default manager.\n// It accept argument opts and env config both.\n//\n// NOTICE:\n// - It use env SESSION_CONFIG_KEY prior to argument opts;\n// - If both env and opts are empty, it won't reset manager;\n// - For concurrent safety, you can only successfully reset manager ONCE.\n//\n//go:nocheckptr\nfunc InitDefaultManager(opts ManagerOptions) {\n\tdefaultManagerOnce.Do(func() {\n\t\t// env config has high priority\n\t\tcheckEnvOptions(\u0026opts)\n\n\t\tif defaultManagerObj != nil {\n\t\t\tdefaultManagerObj.Close()\n\t\t}\n\t\tobj := NewSessionManager(opts)\n\t\tdefaultManagerObj = \u0026obj\n\t})\n}","Signature":"func InitDefaultManager(opts ManagerOptions)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"checkEnvOptions","File":"gls.go","Line":67,"StartOffset":2123,"EndOffset":2138},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","File":"gls.go","Line":72,"StartOffset":2221,"EndOffset":2238}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","File":"gls.go","Line":69,"StartOffset":2152,"EndOffset":2169}]},"NewSessionCtx":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"session.go","Line":44,"StartOffset":1225,"EndOffset":1436,"Content":"// NewSessionCtx creates and enables a SessionCtx\nfunc NewSessionCtx(ctx context.Context) SessionCtx {\n\tvar enabled atomic.Value\n\tenabled.Store(true)\n\treturn SessionCtx{\n\t\tenabled: \u0026enabled,\n\t\tstorage: ctx,\n\t}\n}","Signature":"func NewSessionCtx(ctx context.Context) SessionCtx","Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx","File":"session.go","Line":47,"StartOffset":1383,"EndOffset":1393}]},"NewSessionCtxWithTimeout":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtxWithTimeout","File":"session.go","Line":55,"StartOffset":1438,"EndOffset":1720,"Content":"// NewSessionCtx creates and enables a SessionCtx,\n// and disable the session after timeout\nfunc NewSessionCtxWithTimeout(ctx context.Context, timeout time.Duration) SessionCtx {\n\tret := NewSessionCtx(ctx)\n\tgo func() {\n\t\t\u003c-time.NewTimer(timeout).C\n\t\tret.Disable()\n\t}()\n\treturn ret\n}","Signature":"func NewSessionCtxWithTimeout(ctx context.Context, timeout time.Duration) SessionCtx","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"session.go","Line":56,"StartOffset":1625,"EndOffset":1638}]},"NewSessionManager":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","File":"manager.go","Line":63,"StartOffset":1636,"EndOffset":2138,"Content":"// NewSessionManager creates a SessionManager with default containers\n// If opts.GCInterval \u003e 0, it will start scheduled GC() loop automatically\nfunc NewSessionManager(opts ManagerOptions) SessionManager {\n\tif opts.ShardNumber \u003c= 0 {\n\t\tpanic(\"ShardNumber must be larger than zero\")\n\t}\n\tshards := make([]*shard, opts.ShardNumber)\n\tfor i := range shards {\n\t\tshards[i] = newShard()\n\t}\n\tret := SessionManager{\n\t\tshards: shards,\n\t\topts: opts,\n\t}\n\n\tif opts.GCInterval \u003e 0 {\n\t\tret.startGC()\n\t}\n\treturn ret\n}","Signature":"func NewSessionManager(opts ManagerOptions) SessionManager","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"newShard","File":"manager.go","Line":69,"StartOffset":2004,"EndOffset":2012}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard","File":"manager.go","Line":67,"StartOffset":1940,"EndOffset":1945},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager","File":"manager.go","Line":71,"StartOffset":2026,"EndOffset":2040}]},"NewSessionMap":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","File":"session.go","Line":102,"StartOffset":2676,"EndOffset":2897,"Content":"// NewSessionMap creates and enables a SessionMap\nfunc NewSessionMap(m map[interface{}]interface{}) *SessionMap {\n\tvar enabled atomic.Value\n\tenabled.Store(true)\n\treturn \u0026SessionMap{\n\t\tenabled: \u0026enabled,\n\t\tstorage: m,\n\t}\n}","Signature":"func NewSessionMap(m map[interface{}]interface{}) *SessionMap","Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap","File":"session.go","Line":105,"StartOffset":2846,"EndOffset":2856}]},"NewSessionMapWithTimeout":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMapWithTimeout","File":"session.go","Line":113,"StartOffset":2899,"EndOffset":3190,"Content":"// NewSessionCtx creates and enables a SessionCtx,\n// and disable the session after timeout\nfunc NewSessionMapWithTimeout(m map[interface{}]interface{}, timeout time.Duration) *SessionMap {\n\tret := NewSessionMap(m)\n\tgo func() {\n\t\t\u003c-time.NewTimer(timeout).C\n\t\tret.Disable()\n\t}()\n\treturn ret\n}","Signature":"func NewSessionMapWithTimeout(m map[interface{}]interface{}, timeout time.Duration) *SessionMap","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","File":"session.go","Line":114,"StartOffset":3097,"EndOffset":3110}]},"Session.Get":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":true,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session.Get","File":"session.go","Line":30,"StartOffset":821,"EndOffset":892,"Content":"// Get returns value for specific key\nGet(key interface{}) interface{}","Signature":"// Get returns value for specific key\nGet(key interface{}) interface{}"},"Session.IsValid":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":true,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session.IsValid","File":"session.go","Line":27,"StartOffset":751,"EndOffset":818,"Content":"// IsValid tells if the session is valid at present\nIsValid() bool","Signature":"// IsValid tells if the session is valid at present\nIsValid() bool"},"Session.WithValue":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":true,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session.WithValue","File":"session.go","Line":33,"StartOffset":895,"EndOffset":1025,"Content":"// WithValue sets value for specific key,and return newly effective session\nWithValue(key interface{}, val interface{}) Session","Signature":"// WithValue sets value for specific key,and return newly effective session\nWithValue(key interface{}, val interface{}) Session"},"SessionCtx.Disable":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.Disable","File":"session.go","Line":65,"StartOffset":1722,"EndOffset":1813,"Content":"// Disable ends the session\nfunc (self SessionCtx) Disable() {\n\tself.enabled.Store(false)\n}","Signature":"func (self SessionCtx) Disable()","Receiver":{"IsPointer":false,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}}},"SessionCtx.Export":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.Export","File":"session.go","Line":70,"StartOffset":1815,"EndOffset":1924,"Content":"// Export exports underlying context\nfunc (self SessionCtx) Export() context.Context {\n\treturn self.storage\n}","Signature":"func (self SessionCtx) Export() context.Context","Receiver":{"IsPointer":false,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}}},"SessionCtx.Get":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.Get","File":"session.go","Line":80,"StartOffset":2056,"EndOffset":2177,"Content":"// Get value for specific key\nfunc (self SessionCtx) Get(key interface{}) interface{} {\n\treturn self.storage.Value(key)\n}","Signature":"func (self SessionCtx) Get(key interface{}) interface{}","Receiver":{"IsPointer":false,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}}},"SessionCtx.IsValid":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.IsValid","File":"session.go","Line":75,"StartOffset":1926,"EndOffset":2054,"Content":"// IsValid tells if the session is valid at present\nfunc (self SessionCtx) IsValid() bool {\n\treturn self.enabled.Load().(bool)\n}","Signature":"func (self SessionCtx) IsValid() bool","Receiver":{"IsPointer":false,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}}},"SessionCtx.WithValue":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.WithValue","File":"session.go","Line":85,"StartOffset":2179,"EndOffset":2438,"Content":"// Set value for specific key,and return newly effective session\nfunc (self SessionCtx) WithValue(key interface{}, val interface{}) Session {\n\tctx := context.WithValue(self.storage, key, val)\n\treturn SessionCtx{\n\t\tenabled: self.enabled,\n\t\tstorage: ctx,\n\t}\n}","Signature":"func (self SessionCtx) WithValue(key interface{}, val interface{}) Session","Receiver":{"IsPointer":false,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}},"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx","File":"session.go","Line":87,"StartOffset":2381,"EndOffset":2391}]},"SessionManager.BindSession":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.BindSession","File":"manager.go","Line":134,"StartOffset":3290,"EndOffset":3573,"Content":"// BindSession binds the session with current goroutine\nfunc (self *SessionManager) BindSession(id SessionID, s Session) {\n\tshard := self.shards[uint64(id)%uint64(self.opts.ShardNumber)]\n\n\tshard.Store(id, s)\n\n\tif self.opts.EnableImplicitlyTransmitAsync {\n\t\ttransmitSessionID(id)\n\t}\n}","Signature":"func (self *SessionManager) BindSession(id SessionID, s Session)","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}},"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"transmitSessionID","File":"manager.go","Line":140,"StartOffset":3547,"EndOffset":3564}]},"SessionManager.Close":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.Close","File":"manager.go","Line":200,"StartOffset":4874,"EndOffset":5010,"Content":"// Close stop persistent work for the manager, like GC\nfunc (self SessionManager) Close() {\n\tif self.tik != nil {\n\t\tself.tik.Stop()\n\t}\n}","Signature":"func (self SessionManager) Close()","Receiver":{"IsPointer":false,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}}},"SessionManager.GC":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.GC","File":"manager.go","Line":163,"StartOffset":4014,"EndOffset":4549,"Content":"// GC sweep invalid sessions and release unused memory\nfunc (self SessionManager) GC() {\n\tif !atomic.CompareAndSwapUint32(\u0026self.inGC, 0, 1) {\n\t\treturn\n\t}\n\n\tfor _, shard := range self.shards {\n\t\tshard.lock.Lock()\n\t\tn := shard.m\n\t\tm := make(map[SessionID]Session, len(n))\n\t\tfor id, s := range n {\n\t\t\t// Warning: may panic here?\n\t\t\tif s.IsValid() {\n\t\t\t\tm[id] = s\n\t\t\t}\n\t\t}\n\t\t// atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(\u0026shard.m)), unsafe.Pointer(\u0026m))\n\t\tshard.m = m\n\t\tshard.lock.Unlock()\n\t}\n\n\tatomic.StoreUint32(\u0026self.inGC, 0)\n}","Signature":"func (self SessionManager) GC()","Receiver":{"IsPointer":false,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}},"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","File":"manager.go","Line":171,"StartOffset":4257,"EndOffset":4266},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","File":"manager.go","Line":171,"StartOffset":4267,"EndOffset":4274}]},"SessionManager.GetSession":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.GetSession","File":"manager.go","Line":115,"StartOffset":2768,"EndOffset":3288,"Content":"// Get gets specific session\n// or get inherited session if option EnableImplicitlyTransmitAsync is true\nfunc (self *SessionManager) GetSession(id SessionID) (Session, bool) {\n\tshard := self.shards[uint64(id)%uint64(self.opts.ShardNumber)]\n\tsession, ok := shard.Load(id)\n\tif ok {\n\t\treturn session, ok\n\t}\n\tif !self.opts.EnableImplicitlyTransmitAsync {\n\t\treturn nil, false\n\t}\n\n\tid, ok = getSessionID()\n\tif !ok {\n\t\treturn nil, false\n\t}\n\tshard = self.shards[uint64(id)%uint64(self.opts.ShardNumber)]\n\treturn shard.Load(id)\n}","Signature":"func (self *SessionManager) GetSession(id SessionID) (Session, bool)","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}},"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getSessionID","File":"manager.go","Line":125,"StartOffset":3153,"EndOffset":3165}]},"SessionManager.Options":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.Options","File":"manager.go","Line":83,"StartOffset":2140,"EndOffset":2252,"Content":"// Options shows the manager's Options\nfunc (self SessionManager) Options() ManagerOptions {\n\treturn self.opts\n}","Signature":"func (self SessionManager) Options() ManagerOptions","Receiver":{"IsPointer":false,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}}},"SessionManager.UnbindSession":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.UnbindSession","File":"manager.go","Line":149,"StartOffset":3575,"EndOffset":4012,"Content":"// UnbindSession clears current session\n//\n// Notice: If you want to end the session,\n// please call `Disable()` (or whatever make the session invalid)\n// on your session's implementation\nfunc (self *SessionManager) UnbindSession(id SessionID) {\n\tshard := self.shards[uint64(id)%uint64(self.opts.ShardNumber)]\n\n\t_, ok := shard.Load(id)\n\tif ok {\n\t\tshard.Delete(id)\n\t}\n\n\tif self.opts.EnableImplicitlyTransmitAsync {\n\t\tclearSessionID()\n\t}\n}","Signature":"func (self *SessionManager) UnbindSession(id SessionID)","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}},"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"clearSessionID","File":"manager.go","Line":158,"StartOffset":3991,"EndOffset":4005}]},"SessionManager.startGC":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.startGC","File":"manager.go","Line":187,"StartOffset":4551,"EndOffset":4872,"Content":"// startGC start a scheduled goroutine to call GC() according to GCInterval\nfunc (self *SessionManager) startGC() {\n\tif self.opts.GCInterval \u003c time.Second {\n\t\tpanic(\"GCInterval must be larger than 1 second\")\n\t}\n\tself.tik = time.NewTicker(self.opts.GCInterval)\n\tgo func() {\n\t\tfor range self.tik.C {\n\t\t\tself.GC()\n\t\t}\n\t}()\n}","Signature":"func (self *SessionManager) startGC()","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}}},"SessionMap.Disable":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.Disable","File":"session.go","Line":131,"StartOffset":3359,"EndOffset":3481,"Content":"// Disable ends the session\nfunc (self *SessionMap) Disable() {\n\tif self == nil {\n\t\treturn\n\t}\n\tself.enabled.Store(false)\n}","Signature":"func (self *SessionMap) Disable()","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}}},"SessionMap.Export":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.Export","File":"session.go","Line":139,"StartOffset":3483,"EndOffset":3782,"Content":"// Export COPIES and exports underlying map\nfunc (self *SessionMap) Export() map[interface{}]interface{} {\n\tif self == nil {\n\t\treturn nil\n\t}\n\tm := make(map[interface{}]interface{}, len(self.storage))\n\tself.lock.RLock()\n\tfor k, v := range self.storage {\n\t\tm[k] = v\n\t}\n\tself.lock.RUnlock()\n\treturn m\n}","Signature":"func (self *SessionMap) Export() map[interface{}]interface{}","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}}},"SessionMap.Get":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.Get","File":"session.go","Line":153,"StartOffset":3784,"EndOffset":3986,"Content":"// Get value for specific key\nfunc (self *SessionMap) Get(key interface{}) interface{} {\n\tif self == nil {\n\t\treturn nil\n\t}\n\tself.lock.RLock()\n\tval := self.storage[key]\n\tself.lock.RUnlock()\n\treturn val\n}","Signature":"func (self *SessionMap) Get(key interface{}) interface{}","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}}},"SessionMap.IsValid":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.IsValid","File":"session.go","Line":123,"StartOffset":3192,"EndOffset":3357,"Content":"// IsValid tells if the session is valid at present\nfunc (self *SessionMap) IsValid() bool {\n\tif self == nil {\n\t\treturn false\n\t}\n\treturn self.enabled.Load().(bool)\n}","Signature":"func (self *SessionMap) IsValid() bool","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}}},"SessionMap.WithValue":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.WithValue","File":"session.go","Line":164,"StartOffset":3988,"EndOffset":4215,"Content":"// Set value for specific key,and return itself\nfunc (self *SessionMap) WithValue(key, val interface{}) Session {\n\tif self == nil {\n\t\treturn nil\n\t}\n\tself.lock.Lock()\n\tself.storage[key] = val\n\tself.lock.Unlock()\n\treturn self\n}","Signature":"func (self *SessionMap) WithValue(key, val interface{}) Session","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}}},"TestMain":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestMain","File":"api_test.go","Line":32,"StartOffset":759,"EndOffset":844,"Content":"func TestMain(m *testing.M) {\n\tInitDefaultManager(DefaultManagerOptions())\n\tm.Run()\n}","Signature":"func TestMain(m *testing.M)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","File":"api_test.go","Line":33,"StartOffset":790,"EndOffset":808},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"DefaultManagerOptions","File":"api_test.go","Line":33,"StartOffset":809,"EndOffset":830}]},"TestRace":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRace","File":"api_test.go","Line":394,"StartOffset":9150,"EndOffset":9706,"Content":"func TestRace(t *testing.T) {\n\tmanager := NewSessionManager(ManagerOptions{\n\t\tShardNumber: 1,\n\t\tGCInterval: time.Second,\n\t})\n\tvar N = 1000\n\tvar start sync.RWMutex\n\tstart.Lock()\n\twg := sync.WaitGroup{}\n\tfor i := 0; i \u003c N; i++ {\n\t\twg.Add(1)\n\t\tgo func(i int) {\n\t\t\tdefer wg.Done()\n\t\t\ts := NewSessionMap(map[interface{}]interface{}{}).WithValue(\"a\", \"b\")\n\t\t\tstart.RLock()\n\t\t\tmanager.BindSession(SessionID(i), s)\n\t\t\tss, ok := manager.GetSession(SessionID(i))\n\t\t\tif !ok || ss.Get(\"a\") != \"b\" {\n\t\t\t\tt.Fatal(\"not equal\")\n\t\t\t}\n\t\t}(i)\n\t}\n\tstart.Unlock()\n\twg.Wait()\n}","Signature":"func TestRace(t *testing.T)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","File":"api_test.go","Line":395,"StartOffset":9192,"EndOffset":9209},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","File":"api_test.go","Line":407,"StartOffset":9436,"EndOffset":9449}],"MethodCalls":[{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.WithValue","File":"api_test.go","Line":407,"StartOffset":9481,"EndOffset":9490}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","File":"api_test.go","Line":395,"StartOffset":9210,"EndOffset":9224},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","File":"api_test.go","Line":409,"StartOffset":9541,"EndOffset":9550}]},"TestRealBizGLS":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRealBizGLS","File":"api_test.go","Line":666,"StartOffset":14381,"EndOffset":15078,"Content":"func TestRealBizGLS(t *testing.T) {\n\tvar runner = func(N int) {\n\t\tm := NewSessionManager(ManagerOptions{\n\t\t\tShardNumber: 100,\n\t\t\tGCInterval: time.Second,\n\t\t})\n\t\ts := \u0026stat{\n\t\t\tmin: time.Duration(math.MaxInt64),\n\t\t}\n\t\tctx, _ := context.WithTimeout(context.Background(), time.Second*60)\n\t\temitLoops(\u0026m, ctx, N, s)\n\t\tgo func(ctx context.Context) {\n\t\t\ttt := time.NewTicker(time.Second)\n\t\t\tfor {\n\t\t\t\tselect {\n\t\t\t\tcase \u003c-tt.C:\n\t\t\t\t\t{\n\t\t\t\t\t\tprintln(s.String())\n\t\t\t\t\t}\n\t\t\t\tcase \u003c-ctx.Done():\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t}\n\t\t}(ctx)\n\t\t\u003c-ctx.Done()\n\t}\n\n\tt.Run(\"10\", func(t *testing.T) {\n\t\trunner(10)\n\t})\n\tt.Run(\"100\", func(t *testing.T) {\n\t\trunner(100)\n\t})\n\tt.Run(\"1000\", func(t *testing.T) {\n\t\trunner(1000)\n\t})\n}","Signature":"func TestRealBizGLS(t *testing.T)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","File":"api_test.go","Line":668,"StartOffset":14452,"EndOffset":14469},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"emitLoops","File":"api_test.go","Line":676,"StartOffset":14669,"EndOffset":14678}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","File":"api_test.go","Line":668,"StartOffset":14470,"EndOffset":14484},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"stat","File":"api_test.go","Line":672,"StartOffset":14549,"EndOffset":14553}]},"TestResetDefaultManager":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestResetDefaultManager","File":"api_test.go","Line":37,"StartOffset":846,"EndOffset":2463,"Content":"func TestResetDefaultManager(t *testing.T) {\n\told := defaultManagerObj\n\n\tt.Run(\"arg\", func(t *testing.T) {\n\t\tdefaultManagerOnce = sync.Once{}\n\t\texp := ManagerOptions{\n\t\t\tShardNumber: 1,\n\t\t\tEnableImplicitlyTransmitAsync: true,\n\t\t\tGCInterval: time.Second * 2,\n\t\t}\n\t\tInitDefaultManager(exp)\n\t\tact := defaultManagerObj.Options()\n\t\trequire.Equal(t, exp, act)\n\t})\n\n\tt.Run(\"arg\", func(t *testing.T) {\n\t\tdefaultManagerOnce = sync.Once{}\n\t\tenv := `true,10,10s`\n\t\tos.Setenv(SESSION_CONFIG_KEY, env)\n\t\texp := DefaultManagerOptions()\n\t\tInitDefaultManager(exp)\n\t\tact := defaultManagerObj.Options()\n\t\texp.ShardNumber = 10\n\t\texp.EnableImplicitlyTransmitAsync = true\n\t\texp.GCInterval = time.Second * 10\n\t\trequire.Equal(t, exp, act)\n\n\t\tdefaultManagerOnce = sync.Once{}\n\t\tenv = `,1000`\n\t\tos.Setenv(SESSION_CONFIG_KEY, env)\n\t\texp = DefaultManagerOptions()\n\t\tInitDefaultManager(exp)\n\t\tact = defaultManagerObj.Options()\n\t\texp.ShardNumber = 1000\n\t\trequire.Equal(t, exp, act)\n\n\t\tdefaultManagerOnce = sync.Once{}\n\t\tenv = `,1,2s`\n\t\tos.Setenv(SESSION_CONFIG_KEY, env)\n\t\texp = DefaultManagerOptions()\n\t\tInitDefaultManager(exp)\n\t\tact = defaultManagerObj.Options()\n\t\texp.ShardNumber = 1\n\t\texp.GCInterval = time.Second * 2\n\t\trequire.Equal(t, exp, act)\n\n\t\tdefaultManagerOnce = sync.Once{}\n\t\tenv = `true,,2s`\n\t\tos.Setenv(SESSION_CONFIG_KEY, env)\n\t\texp = DefaultManagerOptions()\n\t\tInitDefaultManager(exp)\n\t\tact = defaultManagerObj.Options()\n\t\texp.EnableImplicitlyTransmitAsync = true\n\t\texp.GCInterval = time.Second * 2\n\t\trequire.Equal(t, exp, act)\n\t})\n\n\tdefaultManagerObj = old\n\tdefaultManagerOnce = sync.Once{}\n}","Signature":"func TestResetDefaultManager(t *testing.T)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","File":"api_test.go","Line":47,"StartOffset":1147,"EndOffset":1165},{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","File":"api_test.go","Line":49,"StartOffset":1218,"EndOffset":1223},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"DefaultManagerOptions","File":"api_test.go","Line":56,"StartOffset":1381,"EndOffset":1402}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","File":"api_test.go","Line":42,"StartOffset":997,"EndOffset":1011}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","File":"api_test.go","Line":38,"StartOffset":899,"EndOffset":916},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerOnce","File":"api_test.go","Line":41,"StartOffset":955,"EndOffset":973},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SESSION_CONFIG_KEY","File":"api_test.go","Line":55,"StartOffset":1347,"EndOffset":1365}]},"TestSessionCtx":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","File":"api_test.go","Line":154,"StartOffset":3840,"EndOffset":6120,"Content":"func TestSessionCtx(t *testing.T) {\n\tvar ctx = context.Background()\n\tvar key, v = \"a\", \"b\"\n\tvar key2, v2 = \"c\", \"d\"\n\tvar sig = make(chan struct{})\n\tvar sig2 = make(chan struct{})\n\n\t// initialize new session with context\n\tvar session = NewSessionCtx(ctx) // implementation...\n\n\t// set specific key-value and update session\n\tstart := session.WithValue(key, v)\n\n\t// set current session\n\tBindSession(start)\n\n\t// pass to new goroutine...\n\tGo(func() {\n\t\t// read specific key under current session\n\t\tval := mustCurSession().Get(key) // val exists\n\t\trequire.Equal(t, v, val)\n\t\t// doSomething....\n\n\t\t// set specific key-value under current session\n\t\t// NOTICE: current session won't change here\n\t\tnext := mustCurSession().WithValue(key2, v2)\n\t\tval2 := mustCurSession().Get(key2) // val2 == nil\n\t\trequire.Nil(t, val2)\n\n\t\t// pass both parent session and new session to sub goroutine\n\t\tGoSession(next, func() {\n\t\t\t// read specific key under current session\n\t\t\tval := mustCurSession().Get(key) // val exists\n\t\t\trequire.Equal(t, v, val)\n\n\t\t\tval2 := mustCurSession().Get(key2) // val2 exists\n\t\t\trequire.Equal(t, v2, val2)\n\t\t\t// doSomething....\n\n\t\t\tsig2 \u003c- struct{}{}\n\n\t\t\t\u003c-sig\n\t\t\trequire.False(t, mustCurSession().IsValid()) // current session is invalid\n\n\t\t\tprintln(\"g2 done\")\n\t\t\tsig2 \u003c- struct{}{}\n\t\t})\n\n\t\tGo(func() {\n\t\t\t// read specific key under current session\n\t\t\tval := mustCurSession().Get(key) // val exists\n\t\t\trequire.Equal(t, v, val)\n\n\t\t\tval2 := mustCurSession().Get(key2) // val2 == nil\n\t\t\trequire.Nil(t, val2)\n\t\t\t// doSomething....\n\n\t\t\tsig2 \u003c- struct{}{}\n\n\t\t\t\u003c-sig\n\t\t\trequire.False(t, mustCurSession().IsValid()) // current session is invalid\n\n\t\t\tprintln(\"g3 done\")\n\t\t\tsig2 \u003c- struct{}{}\n\t\t})\n\n\t\tBindSession(next)\n\t\tval2 = mustCurSession().Get(key2) // val2 exists\n\t\trequire.Equal(t, v2, val2)\n\n\t\tsig2 \u003c- struct{}{}\n\n\t\t\u003c-sig\n\t\trequire.False(t, next.IsValid()) // next is invalid\n\n\t\tprintln(\"g1 done\")\n\t\tsig2 \u003c- struct{}{}\n\t})\n\n\t\u003c-sig2\n\t\u003c-sig2\n\t\u003c-sig2\n\n\tval2 := mustCurSession().Get(key2) // val2 == nil\n\trequire.Nil(t, val2)\n\n\t// initiatively ends the session,\n\t// then all the inherited session (including next) will be disabled\n\tsession.Disable()\n\tclose(sig)\n\n\trequire.False(t, start.IsValid()) // start is invalid\n\n\t\u003c-sig2\n\t\u003c-sig2\n\t\u003c-sig2\n\tprintln(\"g0 done\")\n\n\tUnbindSession()\n}","Signature":"func TestSessionCtx(t *testing.T)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"api_test.go","Line":162,"StartOffset":4075,"EndOffset":4088},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"api_test.go","Line":168,"StartOffset":4224,"EndOffset":4235},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Go","File":"api_test.go","Line":171,"StartOffset":4274,"EndOffset":4276},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","File":"api_test.go","Line":173,"StartOffset":4340,"EndOffset":4354},{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","File":"api_test.go","Line":174,"StartOffset":4390,"EndOffset":4395},{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Nil","File":"api_test.go","Line":181,"StartOffset":4635,"EndOffset":4638},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","File":"api_test.go","Line":184,"StartOffset":4714,"EndOffset":4723},{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"False","File":"api_test.go","Line":196,"StartOffset":5013,"EndOffset":5018},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","File":"api_test.go","Line":252,"StartOffset":6103,"EndOffset":6116}],"MethodCalls":[{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","File":"api_test.go","Line":173,"StartOffset":4357,"EndOffset":4360},{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","File":"api_test.go","Line":179,"StartOffset":4553,"EndOffset":4562},{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","File":"api_test.go","Line":196,"StartOffset":5039,"EndOffset":5046}]},"TestSessionManager_GC":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionManager_GC","File":"api_test.go","Line":360,"StartOffset":8481,"EndOffset":9148,"Content":"func TestSessionManager_GC(t *testing.T) {\n\tinter := time.Second * 2\n\tsd := 10\n\tmanager := NewSessionManager(ManagerOptions{\n\t\tShardNumber: sd,\n\t\tGCInterval: inter,\n\t})\n\n\tvar N = 1000\n\tfor i := 0; i \u003c N; i++ {\n\t\tm := map[interface{}]interface{}{}\n\t\ts := NewSessionMap(m)\n\t\tmanager.BindSession(SessionID(i), s)\n\t\tif i%2 == 1 {\n\t\t\ts.Disable()\n\t\t}\n\t}\n\tfor _, shard := range manager.shards {\n\t\tshard.lock.Lock()\n\t\tl := len(shard.m)\n\t\tshard.lock.Unlock()\n\t\trequire.Equal(t, N/sd, l)\n\t}\n\ttime.Sleep(inter + inter\u003e\u003e1)\n\tsum := 0\n\tfor _, shard := range manager.shards {\n\t\tshard.lock.Lock()\n\t\tl := len(shard.m)\n\t\tshard.lock.Unlock()\n\t\tsum += l\n\t}\n\trequire.Equal(t, N/2, sum)\n}","Signature":"func TestSessionManager_GC(t *testing.T)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","File":"api_test.go","Line":363,"StartOffset":8572,"EndOffset":8589},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","File":"api_test.go","Line":371,"StartOffset":8736,"EndOffset":8749},{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","File":"api_test.go","Line":381,"StartOffset":8942,"EndOffset":8947}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","File":"api_test.go","Line":363,"StartOffset":8590,"EndOffset":8604},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","File":"api_test.go","Line":372,"StartOffset":8775,"EndOffset":8784}]},"TestSessionMap":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","File":"api_test.go","Line":260,"StartOffset":6189,"EndOffset":8479,"Content":"func TestSessionMap(t *testing.T) {\n\tvar key, v = \"a\", \"b\"\n\tvar key2, v2 = \"c\", \"d\"\n\tvar sig = make(chan struct{})\n\tvar sig2 = make(chan struct{})\n\n\t// initialize new session with context\n\tvar session = NewSessionMap(map[interface{}]interface{}{}) // implementation...\n\n\t// set specific key-value and update session\n\tstart := session.WithValue(key, v)\n\n\t// set current session\n\tBindSession(start)\n\n\t// pass to new goroutine...\n\tGo(func() {\n\t\t// read specific key under current session\n\t\tval := mustCurSession().Get(key) // val exists\n\t\trequire.Equal(t, v, val)\n\t\t// doSomething....\n\n\t\t// set specific key-value under current session\n\t\t// NOTICE: current session won't change here\n\t\tnext := mustCurSession().WithValue(key2, v2)\n\t\tval2 := mustCurSession().Get(key2) // val2 exist\n\t\trequire.Equal(t, v2, val2)\n\n\t\t// pass both parent session and new session to sub goroutine\n\t\tGoSession(next, func() {\n\t\t\t// read specific key under current session\n\t\t\tval := mustCurSession().Get(key) // val exists\n\t\t\trequire.Equal(t, v, val)\n\n\t\t\tval2 := mustCurSession().Get(key2) // val2 exists\n\t\t\trequire.Equal(t, v2, val2)\n\t\t\t// doSomething....\n\n\t\t\tsig2 \u003c- struct{}{}\n\n\t\t\t\u003c-sig\n\t\t\trequire.False(t, mustCurSession().IsValid()) // current session is invalid\n\n\t\t\tprintln(\"g2 done\")\n\t\t\tsig2 \u003c- struct{}{}\n\t\t})\n\n\t\tGo(func() {\n\t\t\t// read specific key under current session\n\t\t\tval := mustCurSession().Get(key) // val exists\n\t\t\trequire.Equal(t, v, val)\n\n\t\t\tval2 := mustCurSession().Get(key2) // val2 exist\n\t\t\trequire.Equal(t, v2, val2)\n\t\t\t// doSomething....\n\n\t\t\tsig2 \u003c- struct{}{}\n\n\t\t\t\u003c-sig\n\t\t\trequire.False(t, mustCurSession().IsValid()) // current session is invalid\n\n\t\t\tprintln(\"g3 done\")\n\t\t\tsig2 \u003c- struct{}{}\n\t\t})\n\n\t\tBindSession(next)\n\t\tval2 = mustCurSession().Get(key2) // val2 exists\n\t\trequire.Equal(t, v2, val2)\n\n\t\tsig2 \u003c- struct{}{}\n\n\t\t\u003c-sig\n\t\trequire.False(t, next.IsValid()) // next is invalid\n\n\t\tprintln(\"g1 done\")\n\t\tsig2 \u003c- struct{}{}\n\t})\n\n\t\u003c-sig2\n\t\u003c-sig2\n\t\u003c-sig2\n\n\tval2 := mustCurSession().Get(key2) // val2 exists\n\trequire.Equal(t, v2, val2)\n\n\t// initiatively ends the session,\n\t// then all the inherited session (including next) will be disabled\n\tsession.Disable()\n\tclose(sig)\n\n\trequire.False(t, start.IsValid()) // start is invalid\n\n\t\u003c-sig2\n\t\u003c-sig2\n\t\u003c-sig2\n\tprintln(\"g0 done\")\n\n\tUnbindSession()\n}","Signature":"func TestSessionMap(t *testing.T)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","File":"api_test.go","Line":267,"StartOffset":6392,"EndOffset":6405},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"api_test.go","Line":273,"StartOffset":6567,"EndOffset":6578},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Go","File":"api_test.go","Line":276,"StartOffset":6617,"EndOffset":6619},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","File":"api_test.go","Line":278,"StartOffset":6683,"EndOffset":6697},{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","File":"api_test.go","Line":279,"StartOffset":6733,"EndOffset":6738},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","File":"api_test.go","Line":289,"StartOffset":7062,"EndOffset":7071},{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"False","File":"api_test.go","Line":301,"StartOffset":7361,"EndOffset":7366},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","File":"api_test.go","Line":357,"StartOffset":8462,"EndOffset":8475}],"MethodCalls":[{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","File":"api_test.go","Line":278,"StartOffset":6700,"EndOffset":6703},{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","File":"api_test.go","Line":284,"StartOffset":6896,"EndOffset":6905},{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","File":"api_test.go","Line":301,"StartOffset":7387,"EndOffset":7394}]},"TestSessionTimeout":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionTimeout","File":"api_test.go","Line":144,"StartOffset":3513,"EndOffset":3838,"Content":"func TestSessionTimeout(t *testing.T) {\n\ts := NewSessionCtxWithTimeout(context.Background(), time.Second)\n\tss := s.WithValue(1, 2)\n\tm := NewSessionMapWithTimeout(map[interface{}]interface{}{}, time.Second)\n\tmm := m.WithValue(1, 2)\n\ttime.Sleep(time.Second * 2)\n\trequire.False(t, ss.IsValid())\n\trequire.False(t, mm.IsValid())\n}","Signature":"func TestSessionTimeout(t *testing.T)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtxWithTimeout","File":"api_test.go","Line":145,"StartOffset":3559,"EndOffset":3583},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMapWithTimeout","File":"api_test.go","Line":147,"StartOffset":3650,"EndOffset":3674},{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"False","File":"api_test.go","Line":150,"StartOffset":3782,"EndOffset":3787}]},"TestTransparentTransmitAsync":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","File":"api_test.go","Line":99,"StartOffset":2465,"EndOffset":3511,"Content":"//go:nocheckptr\nfunc TestTransparentTransmitAsync(t *testing.T) {\n\told := defaultManagerObj\n\tInitDefaultManager(ManagerOptions{\n\t\tShardNumber: 10,\n\t\tEnableImplicitlyTransmitAsync: true,\n\t\tGCInterval: time.Second * 2,\n\t})\n\ts := NewSessionMap(map[interface{}]interface{}{\n\t\t\"a\": \"b\",\n\t})\n\n\tlabels := pprof.Labels(\"c\", \"d\")\n\n\t// WARNING: pprof.Do() must be called before BindSession(),\n\t// otherwise transparently transmitting session will be dysfunctional\n\tpprof.Do(context.Background(), labels, func(ctx context.Context) {})\n\n\tBindSession(s)\n\n\twg := sync.WaitGroup{}\n\twg.Add(3)\n\tgo func() {\n\t\tdefer wg.Done()\n\t\trequire.Equal(t, \"b\", mustCurSession().Get(\"a\"))\n\n\t\tgo func() {\n\t\t\tdefer wg.Done()\n\t\t\trequire.Equal(t, \"b\", mustCurSession().Get(\"a\"))\n\t\t}()\n\n\t\trequire.Equal(t, \"b\", mustCurSession().Get(\"a\"))\n\t\tUnbindSession()\n\t\trequire.Nil(t, mustCurSession())\n\n\t\tgo func() {\n\t\t\tdefer wg.Done()\n\t\t\trequire.Nil(t, mustCurSession())\n\t\t}()\n\t}()\n\n\twg.Wait()\n\tdefaultManagerObj = old\n\tdefaultManagerOnce = sync.Once{}\n}","Signature":"func TestTransparentTransmitAsync(t *testing.T)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","File":"api_test.go","Line":101,"StartOffset":2558,"EndOffset":2576},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","File":"api_test.go","Line":106,"StartOffset":2729,"EndOffset":2742},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"api_test.go","Line":116,"StartOffset":3028,"EndOffset":3039},{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","File":"api_test.go","Line":122,"StartOffset":3120,"EndOffset":3125},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","File":"api_test.go","Line":122,"StartOffset":3134,"EndOffset":3148},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","File":"api_test.go","Line":130,"StartOffset":3307,"EndOffset":3320},{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Nil","File":"api_test.go","Line":131,"StartOffset":3333,"EndOffset":3336}],"MethodCalls":[{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","File":"api_test.go","Line":122,"StartOffset":3151,"EndOffset":3154}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","File":"api_test.go","Line":101,"StartOffset":2577,"EndOffset":2591}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","File":"api_test.go","Line":100,"StartOffset":2539,"EndOffset":2556},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerOnce","File":"api_test.go","Line":141,"StartOffset":3477,"EndOffset":3495}]},"UnbindSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","File":"gls.go","Line":129,"StartOffset":3459,"EndOffset":3866,"Content":"// UnbindSession unbind a session (if any) with current goroutine\n//\n// NOTICE: If you want to end the session,\n// please call `Disable()` (or whatever make the session invalid)\n// on your session's implementation\n//\n// NOTICE: MUST call `InitDefaultManager()` once before using this API\nfunc UnbindSession() {\n\tif defaultManagerObj == nil {\n\t\treturn\n\t}\n\tdefaultManagerObj.UnbindSession(SessionID(goID()))\n}","Signature":"func UnbindSession()","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","File":"gls.go","Line":133,"StartOffset":3856,"EndOffset":3860}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","File":"gls.go","Line":133,"StartOffset":3846,"EndOffset":3855}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","File":"gls.go","Line":130,"StartOffset":3774,"EndOffset":3791}]},"checkEnvOptions":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"checkEnvOptions","File":"gls.go","Line":77,"StartOffset":2279,"EndOffset":2906,"Content":"func checkEnvOptions(opts *ManagerOptions) {\n\tif env := os.Getenv(SESSION_CONFIG_KEY); env != \"\" {\n\t\tenvs := strings.Split(env, \",\")\n\t\t// parse first option as EnableTransparentTransmitAsync\n\t\tif strings.ToLower(envs[0]) == \"true\" {\n\t\t\topts.EnableImplicitlyTransmitAsync = true\n\t\t}\n\n\t\t// parse first option as ShardNumber\n\t\tif len(envs) \u003e 1 {\n\t\t\tif opt, err := strconv.Atoi(envs[1]); err == nil {\n\t\t\t\topts.ShardNumber = opt\n\t\t\t}\n\t\t}\n\n\t\t// parse third option as EnableTransparentTransmitAsync\n\t\tif len(envs) \u003e 2 {\n\t\t\tif d, err := time.ParseDuration(envs[2]); err == nil \u0026\u0026 d \u003e time.Second {\n\t\t\t\topts.GCInterval = d\n\t\t\t}\n\t\t}\n\t}\n}","Signature":"func checkEnvOptions(opts *ManagerOptions)","GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SESSION_CONFIG_KEY","File":"gls.go","Line":78,"StartOffset":2345,"EndOffset":2363}]},"clearSessionID":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"clearSessionID","File":"stubs.go","Line":77,"StartOffset":1687,"EndOffset":1948,"Content":"func clearSessionID() {\n\tm := getPproLabel()\n\tif m == nil {\n\t\treturn\n\t}\n\tif _, ok := (*m)[Pprof_Label_Session_ID]; !ok {\n\t\treturn\n\t}\n\tn := make(labelMap, len(*m))\n\tfor k, v := range *m {\n\t\tif k != Pprof_Label_Session_ID {\n\t\t\tn[k] = v\n\t\t}\n\t}\n\tsetPprofLabel(\u0026n)\n}","Signature":"func clearSessionID()","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getPproLabel","File":"stubs.go","Line":78,"StartOffset":1717,"EndOffset":1729},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"setPprofLabel","File":"stubs.go","Line":91,"StartOffset":1929,"EndOffset":1942}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"labelMap","File":"stubs.go","Line":85,"StartOffset":1831,"EndOffset":1839}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Pprof_Label_Session_ID","File":"stubs.go","Line":82,"StartOffset":1777,"EndOffset":1799}]},"emitLoops":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"emitLoops","File":"api_test.go","Line":601,"StartOffset":13084,"EndOffset":13768,"Content":"func emitLoops(m *SessionManager, ctx context.Context, N int, s *stat) {\n\tfor i := 0; i \u003c N; i++ {\n\t\tgo func() {\n\t\t\tfor {\n\t\t\t\tif ctx.Err() != nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tstart := time.Now()\n\t\t\t\tsession := NewSessionCtx(ctx)\n\t\t\t\tss := session.WithValue(\"a\", \"b\")\n\t\t\t\tm.BindSession(SessionID(goID()), ss)\n\t\t\t\tsss, _ := m.GetSession(SessionID(goID()))\n\t\t\t\tif val := sss.Get(\"a\"); val != \"b\" {\n\t\t\t\t\tpanic(fmt.Sprintf(\"unexpected val: %#v\", val))\n\t\t\t\t}\n\t\t\t\tm.UnbindSession(SessionID(goID()))\n\t\t\t\tcost := time.Now().Sub(start)\n\t\t\t\ts.Update(cost)\n\t\t\t\tfor a := 0; a \u003c 10; a++ {\n\t\t\t\t\ttime.Sleep(time.Microsecond * 50)\n\t\t\t\t\tfor b := 0; b \u003c 100000; b++ {\n\t\t\t\t\t\t_ = b\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\t}\n}","Signature":"func emitLoops(m *SessionManager, ctx context.Context, N int, s *stat)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"api_test.go","Line":609,"StartOffset":13289,"EndOffset":13302},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","File":"api_test.go","Line":611,"StartOffset":13374,"EndOffset":13378}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","File":"api_test.go","Line":611,"StartOffset":13364,"EndOffset":13373}]},"getPproLabel":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getPproLabel","File":"stubs.go","Line":38,"StartOffset":931,"EndOffset":1022,"Content":"//go:linkname getPproLabel runtime/pprof.runtime_getProfLabel\nfunc getPproLabel() *labelMap","Signature":"func getPproLabel() *labelMap"},"getSessionID":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getSessionID","File":"stubs.go","Line":61,"StartOffset":1396,"EndOffset":1685,"Content":"func getSessionID() (SessionID, bool) {\n\tm := getPproLabel()\n\tif m == nil {\n\t\treturn 0, false\n\t}\n\tif v, ok := (*m)[Pprof_Label_Session_ID]; !ok {\n\t\treturn 0, false\n\t} else {\n\t\tid, err := strconv.ParseInt(v, 10, 64)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\t\treturn SessionID(id), true\n\t}\n}","Signature":"func getSessionID() (SessionID, bool)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getPproLabel","File":"stubs.go","Line":62,"StartOffset":1442,"EndOffset":1454}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","File":"stubs.go","Line":73,"StartOffset":1661,"EndOffset":1670}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Pprof_Label_Session_ID","File":"stubs.go","Line":66,"StartOffset":1511,"EndOffset":1533}]},"goID":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","File":"stubs.go","Line":24,"StartOffset":681,"EndOffset":800,"Content":"//go:nocheckptr\nfunc goID() uint64 {\n\tgid, err := runtimex.GID()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn uint64(gid)\n}","Signature":"func goID() uint64","FunctionCalls":[{"ModPath":"github.com/cloudwego/runtimex@v0.1.1","PkgPath":"github.com/cloudwego/runtimex","Name":"GID","File":"stubs.go","Line":25,"StartOffset":740,"EndOffset":743}]},"mustCurSession":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","File":"api_test.go","Line":255,"StartOffset":6122,"EndOffset":6187,"Content":"func mustCurSession() Session {\n\ts, _ := CurSession()\n\treturn s\n}","Signature":"func mustCurSession() Session","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","File":"api_test.go","Line":256,"StartOffset":6163,"EndOffset":6173}]},"newShard":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"newShard","File":"manager.go","Line":55,"StartOffset":1523,"EndOffset":1634,"Content":"func newShard() *shard {\n\tret := new(shard)\n\tret.m = make(map[SessionID]Session, defaultShardCap)\n\treturn ret\n}","Signature":"func newShard() *shard","Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard","File":"manager.go","Line":56,"StartOffset":1560,"EndOffset":1565},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","File":"manager.go","Line":57,"StartOffset":1585,"EndOffset":1594},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","File":"manager.go","Line":57,"StartOffset":1595,"EndOffset":1602}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultShardCap","File":"manager.go","Line":57,"StartOffset":1604,"EndOffset":1619}]},"setPprofLabel":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"setPprofLabel","File":"stubs.go","Line":35,"StartOffset":835,"EndOffset":929,"Content":"//go:linkname setPprofLabel runtime/pprof.runtime_setProfLabel\nfunc setPprofLabel(m *labelMap)","Signature":"func setPprofLabel(m *labelMap)"},"shard.Delete":{"Exported":false,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard.Delete","File":"manager.go","Line":107,"StartOffset":2677,"EndOffset":2766,"Content":"func (s *shard) Delete(id SessionID) {\n\ts.lock.Lock()\n\tdelete(s.m, id)\n\ts.lock.Unlock()\n}","Signature":"func (s *shard) Delete(id SessionID)","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}}},"shard.Load":{"Exported":false,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard.Load","File":"manager.go","Line":90,"StartOffset":2319,"EndOffset":2576,"Content":"func (s *shard) Load(id SessionID) (Session, bool) {\n\ts.lock.RLock()\n\n\t// p := atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(\u0026s.m)))\n\t// m := *(*map[SessionID]Session)(unsafe.Pointer(p))\n\n\tsession, ok := s.m[id]\n\ts.lock.RUnlock()\n\treturn session, ok\n}","Signature":"func (s *shard) Load(id SessionID) (Session, bool)","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}}},"shard.Store":{"Exported":false,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard.Store","File":"manager.go","Line":101,"StartOffset":2578,"EndOffset":2675,"Content":"func (s *shard) Store(id SessionID, se Session) {\n\ts.lock.Lock()\n\ts.m[id] = se\n\ts.lock.Unlock()\n}","Signature":"func (s *shard) Store(id SessionID, se Session)","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}}},"stat.String":{"Exported":false,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"stat.String","File":"api_test.go","Line":660,"StartOffset":14204,"EndOffset":14379,"Content":"func (st *stat) String() string {\n\tst.mux.RLock()\n\tdefer st.mux.RUnlock()\n\treturn fmt.Sprintf(\"min:%dns, max:%dns, avg:%dns\", st.min, st.max, st.sum/time.Duration(st.count))\n}","Signature":"func (st *stat) String() string","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"stat"}}},"stat.Update":{"Exported":false,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"stat.Update","File":"api_test.go","Line":647,"StartOffset":14000,"EndOffset":14202,"Content":"func (st *stat) Update(cost time.Duration) {\n\tst.mux.Lock()\n\tdefer st.mux.Unlock()\n\tif cost \u003e st.max {\n\t\tst.max = cost\n\t} else if cost \u003c st.min {\n\t\tst.min = cost\n\t}\n\tst.count++\n\tst.sum += cost\n\treturn\n}","Signature":"func (st *stat) Update(cost time.Duration)","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"stat"}}},"transmitSessionID":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"transmitSessionID","File":"stubs.go","Line":42,"StartOffset":1072,"EndOffset":1394,"Content":"func transmitSessionID(id SessionID) {\n\tm := getPproLabel()\n\n\tvar n labelMap\n\tif m == nil {\n\t\tn = make(labelMap)\n\t} else {\n\t\tn = make(labelMap, len(*m))\n\t\tfor k, v := range *m {\n\t\t\tif k != Pprof_Label_Session_ID {\n\t\t\t\tn[k] = v\n\t\t\t}\n\t\t}\n\t}\n\n\tn[Pprof_Label_Session_ID] = strconv.FormatInt(int64(id), 10)\n\tsetPprofLabel(\u0026n)\n}","Signature":"func transmitSessionID(id SessionID)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getPproLabel","File":"stubs.go","Line":43,"StartOffset":1117,"EndOffset":1129},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"setPprofLabel","File":"stubs.go","Line":58,"StartOffset":1375,"EndOffset":1388}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"labelMap","File":"stubs.go","Line":45,"StartOffset":1140,"EndOffset":1148}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Pprof_Label_Session_ID","File":"stubs.go","Line":51,"StartOffset":1261,"EndOffset":1283}]}},"Types":{"ManagerOptions":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","File":"manager.go","Line":24,"StartOffset":697,"EndOffset":1270,"Content":"// ManagerOptions for SessionManager\ntype ManagerOptions struct {\n\t// EnableImplicitlyTransmitAsync enables transparently transmit\n\t// current session to children goroutines\n\t//\n\t// WARNING: Once this option enables, if you want to use `pprof.Do()`, it must be called before `BindSession()`,\n\t// otherwise transmitting will be disfunctional\n\tEnableImplicitlyTransmitAsync bool\n\n\t// ShardNumber is used to shard session id, it must be larger than zero\n\tShardNumber int\n\n\t// GCInterval decides the GC interval for SessionManager,\n\t// it must be larger than 1s or zero means disable GC\n\tGCInterval time.Duration\n}"},"Session":{"Exported":true,"TypeKind":"interface","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","File":"session.go","Line":25,"StartOffset":725,"EndOffset":1027,"Content":"// Session represents a local storage for one session\ntype Session interface {\n\t// IsValid tells if the session is valid at present\n\tIsValid() bool\n\n\t// Get returns value for specific key\n\tGet(key interface{}) interface{}\n\n\t// WithValue sets value for specific key,and return newly effective session\n\tWithValue(key interface{}, val interface{}) Session\n}","Methods":{"Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session.Get"},"IsValid":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session.IsValid"},"WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session.WithValue"}}},"SessionCtx":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx","File":"session.go","Line":38,"StartOffset":1149,"EndOffset":1223,"Content":"// SessionCtx implements Session with context,\n// which means children session WON'T affect parent and sibling sessions\ntype SessionCtx struct {\n\tenabled *atomic.Value\n\tstorage context.Context\n}","Implements":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session"}]},"SessionID":{"Exported":true,"TypeKind":"typedef","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","File":"manager.go","Line":88,"StartOffset":2296,"EndOffset":2317,"Content":"// SessionID is the identity of a session\ntype SessionID uint64"},"SessionManager":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager","File":"manager.go","Line":46,"StartOffset":1389,"EndOffset":1495,"Content":"// SessionManager maintain and manage sessions\ntype SessionManager struct {\n\tshards []*shard\n\tinGC uint32\n\ttik *time.Ticker\n\topts ManagerOptions\n}"},"SessionMap":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap","File":"session.go","Line":95,"StartOffset":2566,"EndOffset":2674,"Content":"// NewSessionMap implements Session with map,\n// which means children session WILL affect parent session and sibling sessions\ntype SessionMap struct {\n\tenabled *atomic.Value\n\tstorage map[interface{}]interface{}\n\tlock sync.RWMutex\n}","Implements":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session"}]},"labelMap":{"Exported":false,"TypeKind":"typedef","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"labelMap","File":"stubs.go","Line":32,"StartOffset":802,"EndOffset":833,"Content":"type labelMap map[string]string"},"shard":{"Exported":false,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard","File":"manager.go","Line":40,"StartOffset":1272,"EndOffset":1340,"Content":"type shard struct {\n\tlock sync.RWMutex\n\tm map[SessionID]Session\n}"},"stat":{"Exported":false,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"stat","File":"api_test.go","Line":638,"StartOffset":13885,"EndOffset":13998,"Content":"type stat struct {\n\tmax time.Duration\n\tmin time.Duration\n\tsum time.Duration\n\tcount int\n\n\tmux sync.RWMutex\n}"}},"Vars":{"N":{"IsExported":true,"IsConst":true,"IsPointer":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","File":"api_test.go","Line":30,"StartOffset":751,"EndOffset":757,"Type":{"ModPath":"","PkgPath":"","Name":"untyped int"},"Content":"const N untyped int = 10"},"Pprof_Label_Session_ID":{"IsExported":true,"IsConst":true,"IsPointer":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Pprof_Label_Session_ID","File":"stubs.go","Line":40,"StartOffset":1030,"EndOffset":1070,"Type":{"ModPath":"","PkgPath":"","Name":"untyped string"},"Content":"const Pprof_Label_Session_ID untyped string = \"go_session_id\""},"SESSION_CONFIG_KEY":{"IsExported":true,"IsConst":true,"IsPointer":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SESSION_CONFIG_KEY","File":"gls.go","Line":34,"StartOffset":1142,"EndOffset":1193,"Type":{"ModPath":"","PkgPath":"","Name":"untyped string"},"Content":"// SESSION_CONFIG_KEY is the env key for configuring default session manager.\n//\n//\tValue format: [EnableImplicitlyTransmitAsync][,ShardNumber][,GCInterval]\n//\t- EnableImplicitlyTransmitAsync: 'true' means enabled, otherwist means disabled\n//\t- ShardNumber: integer \u003e 0\n//\t- GCInterval: Golang time.Duration format, such as '10m' means ten minutes for each GC\n//\n// Once the key is set, default option values will be set if the option value doesn't exist.\nconst SESSION_CONFIG_KEY untyped string = \"CLOUDWEGO_SESSION_CONFIG_KEY\""},"defaultManagerObj":{"IsExported":false,"IsConst":false,"IsPointer":true,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","File":"gls.go","Line":37,"StartOffset":1202,"EndOffset":1236,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"},"Content":"var defaultManagerObj *localsession.SessionManager"},"defaultManagerOnce":{"IsExported":false,"IsConst":false,"IsPointer":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerOnce","File":"gls.go","Line":38,"StartOffset":1238,"EndOffset":1266,"Type":{"ModPath":"","PkgPath":"sync","Name":"Once"},"Content":"var defaultManagerOnce sync.Once"},"defaultShardCap":{"IsExported":false,"IsConst":false,"IsPointer":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultShardCap","File":"manager.go","Line":53,"StartOffset":1501,"EndOffset":1521,"Type":{"ModPath":"","PkgPath":"","Name":"int"},"Content":"var defaultShardCap int = 10"}}},"github.com/cloudwego/localsession/backup":{"IsMain":false,"IsTest":false,"PkgPath":"github.com/cloudwego/localsession/backup","Functions":{"BackupCtx":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"BackupCtx","File":"backup/metainfo.go","Line":104,"StartOffset":2573,"EndOffset":2753,"Content":"// Set current Sessioin\nfunc BackupCtx(ctx context.Context) {\n\tif localsession.GetDefaultManager() == nil {\n\t\treturn\n\t}\n\tlocalsession.BindSession(localsession.NewSessionCtx(ctx))\n}","Signature":"func BackupCtx(ctx context.Context)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GetDefaultManager","File":"backup/metainfo.go","Line":105,"StartOffset":2652,"EndOffset":2669},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","File":"backup/metainfo.go","Line":108,"StartOffset":2707,"EndOffset":2718},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtx","File":"backup/metainfo.go","Line":108,"StartOffset":2732,"EndOffset":2745}]},"ClearCtx":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"ClearCtx","File":"backup/metainfo.go","Line":112,"StartOffset":2755,"EndOffset":2829,"Content":"// Unset current Session\nfunc ClearCtx() {\n\tlocalsession.UnbindSession()\n}","Signature":"func ClearCtx()","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","File":"backup/metainfo.go","Line":113,"StartOffset":2812,"EndOffset":2825}]},"DefaultOptions":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"DefaultOptions","File":"backup/metainfo.go","Line":36,"StartOffset":965,"EndOffset":1118,"Content":"// Default Options\nfunc DefaultOptions() Options {\n\treturn Options{\n\t\tEnable: false,\n\t\tManagerOptions: localsession.DefaultManagerOptions(),\n\t}\n}","Signature":"func DefaultOptions() Options","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Options","File":"backup/metainfo.go","Line":36,"StartOffset":1006,"EndOffset":1013}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"DefaultManagerOptions","File":"backup/metainfo.go","Line":39,"StartOffset":1089,"EndOffset":1110}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Options","File":"backup/metainfo.go","Line":37,"StartOffset":1024,"EndOffset":1031}]},"Init":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Init","File":"backup/metainfo.go","Line":45,"StartOffset":1120,"EndOffset":1327,"Content":"// Init gloabal session manager\n// It uses env config first, the key is localsession.SESSION_CONFIG_KEY\nfunc Init(opts Options) {\n\tif opts.Enable {\n\t\tlocalsession.InitDefaultManager(opts.ManagerOptions)\n\t}\n}","Signature":"func Init(opts Options)","Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Options","File":"backup/metainfo.go","Line":45,"StartOffset":1234,"EndOffset":1246}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager","File":"backup/metainfo.go","Line":47,"StartOffset":1283,"EndOffset":1301}]},"RecoverCtxOnDemands":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"RecoverCtxOnDemands","File":"backup/metainfo.go","Line":54,"StartOffset":1329,"EndOffset":2571,"Content":"// If handler != nil, this func will try to merge metainfo\n// and pre-defined key-values (through Options.BackupHanlder)\n// from backup context into given context\nfunc RecoverCtxOnDemands(ctx context.Context, handler BackupHandler) context.Context {\n\tif handler == nil {\n\t\treturn ctx\n\t}\n\ts, ok := localsession.CurSession()\n\tif !ok {\n\t\treturn ctx\n\t}\n\tc, ok := s.(localsession.SessionCtx)\n\tif !ok {\n\t\treturn ctx\n\t}\n\tpre := c.Export()\n\n\t// trigger user-defined handler if any\n\tnctx, backup := handler(pre, ctx)\n\tif !backup {\n\t\treturn ctx\n\t}\n\tctx = nctx\n\n\t// two-way merge all persistent metainfo if pre context has\n\tif n := metainfo.CountPersistentValues(pre); n \u003e 0 {\n\t\t// persistent kvs\n\t\tkvs := make([]string, 0, n*2)\n\t\tmkvs := metainfo.GetAllPersistentValues(ctx)\n\n\t\t// incoming ctx is prior to session\n\t\tif len(mkvs) == 0 {\n\t\t\t// merge all kvs from pre\n\t\t\tmetainfo.RangePersistentValues(pre, func(k, v string) bool {\n\t\t\t\tkvs = append(kvs, k, v)\n\t\t\t\treturn true\n\t\t\t})\n\t\t} else {\n\t\t\tmetainfo.RangePersistentValues(pre, func(k, v string) bool {\n\t\t\t\t// filter kvs which exists in cur\n\t\t\t\tif _, ok := mkvs[k]; !ok {\n\t\t\t\t\tkvs = append(kvs, k, v)\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t})\n\t\t}\n\t\tctx = metainfo.WithPersistentValues(ctx, kvs...)\n\t}\n\n\treturn ctx\n}","Signature":"func RecoverCtxOnDemands(ctx context.Context, handler BackupHandler) context.Context","Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"BackupHandler","File":"backup/metainfo.go","Line":54,"StartOffset":1538,"EndOffset":1559}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","File":"backup/metainfo.go","Line":58,"StartOffset":1639,"EndOffset":1649},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"CountPersistentValues","File":"backup/metainfo.go","Line":76,"StartOffset":1959,"EndOffset":1980},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"GetAllPersistentValues","File":"backup/metainfo.go","Line":79,"StartOffset":2066,"EndOffset":2088},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"RangePersistentValues","File":"backup/metainfo.go","Line":84,"StartOffset":2196,"EndOffset":2217},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithPersistentValues","File":"backup/metainfo.go","Line":97,"StartOffset":2520,"EndOffset":2540}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Export","File":"backup/metainfo.go","Line":66,"StartOffset":1752,"EndOffset":1758}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","File":"backup/metainfo.go","Line":62,"StartOffset":1704,"EndOffset":1714}]}},"Types":{"BackupHandler":{"Exported":true,"TypeKind":"typedef","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"BackupHandler","File":"backup/metainfo.go","Line":27,"StartOffset":800,"EndOffset":885,"Content":"// BackupHandler is used to decide and recover prev context to cur context\ntype BackupHandler func(prev, cur context.Context) (ctx context.Context, backup bool)"},"Options":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Options","File":"backup/metainfo.go","Line":30,"StartOffset":898,"EndOffset":963,"Content":"// Options\ntype Options struct {\n\tEnable bool\n\tlocalsession.ManagerOptions\n}","InlineStruct":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","File":"backup/metainfo.go","Line":32,"StartOffset":934,"EndOffset":961}]}},"Vars":{}},"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]":{"IsMain":false,"IsTest":true,"PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Functions":{"BackupCtx":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupCtx","File":"backup/metainfo.go","Line":104,"StartOffset":2573,"EndOffset":2753,"Content":"// Set current Sessioin\nfunc BackupCtx(ctx context.Context) {\n\tif localsession.GetDefaultManager() == nil {\n\t\treturn\n\t}\n\tlocalsession.BindSession(localsession.NewSessionCtx(ctx))\n}","Signature":"func BackupCtx(ctx context.Context)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GetDefaultManager","File":"backup/metainfo.go","Line":105,"StartOffset":2652,"EndOffset":2669},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","File":"backup/metainfo.go","Line":108,"StartOffset":2707,"EndOffset":2718},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtx","File":"backup/metainfo.go","Line":108,"StartOffset":2732,"EndOffset":2745}]},"ClearCtx":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"ClearCtx","File":"backup/metainfo.go","Line":112,"StartOffset":2755,"EndOffset":2829,"Content":"// Unset current Session\nfunc ClearCtx() {\n\tlocalsession.UnbindSession()\n}","Signature":"func ClearCtx()","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","File":"backup/metainfo.go","Line":113,"StartOffset":2812,"EndOffset":2825}]},"DefaultOptions":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"DefaultOptions","File":"backup/metainfo.go","Line":36,"StartOffset":965,"EndOffset":1118,"Content":"// Default Options\nfunc DefaultOptions() Options {\n\treturn Options{\n\t\tEnable: false,\n\t\tManagerOptions: localsession.DefaultManagerOptions(),\n\t}\n}","Signature":"func DefaultOptions() Options","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"DefaultManagerOptions","File":"backup/metainfo.go","Line":39,"StartOffset":1089,"EndOffset":1110}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"Options","File":"backup/metainfo.go","Line":37,"StartOffset":1024,"EndOffset":1031}]},"Init":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"Init","File":"backup/metainfo.go","Line":45,"StartOffset":1120,"EndOffset":1327,"Content":"// Init gloabal session manager\n// It uses env config first, the key is localsession.SESSION_CONFIG_KEY\nfunc Init(opts Options) {\n\tif opts.Enable {\n\t\tlocalsession.InitDefaultManager(opts.ManagerOptions)\n\t}\n}","Signature":"func Init(opts Options)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager","File":"backup/metainfo.go","Line":47,"StartOffset":1283,"EndOffset":1301}]},"RecoverCtxOnDemands":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","File":"backup/metainfo.go","Line":54,"StartOffset":1329,"EndOffset":2571,"Content":"// If handler != nil, this func will try to merge metainfo\n// and pre-defined key-values (through Options.BackupHanlder)\n// from backup context into given context\nfunc RecoverCtxOnDemands(ctx context.Context, handler BackupHandler) context.Context {\n\tif handler == nil {\n\t\treturn ctx\n\t}\n\ts, ok := localsession.CurSession()\n\tif !ok {\n\t\treturn ctx\n\t}\n\tc, ok := s.(localsession.SessionCtx)\n\tif !ok {\n\t\treturn ctx\n\t}\n\tpre := c.Export()\n\n\t// trigger user-defined handler if any\n\tnctx, backup := handler(pre, ctx)\n\tif !backup {\n\t\treturn ctx\n\t}\n\tctx = nctx\n\n\t// two-way merge all persistent metainfo if pre context has\n\tif n := metainfo.CountPersistentValues(pre); n \u003e 0 {\n\t\t// persistent kvs\n\t\tkvs := make([]string, 0, n*2)\n\t\tmkvs := metainfo.GetAllPersistentValues(ctx)\n\n\t\t// incoming ctx is prior to session\n\t\tif len(mkvs) == 0 {\n\t\t\t// merge all kvs from pre\n\t\t\tmetainfo.RangePersistentValues(pre, func(k, v string) bool {\n\t\t\t\tkvs = append(kvs, k, v)\n\t\t\t\treturn true\n\t\t\t})\n\t\t} else {\n\t\t\tmetainfo.RangePersistentValues(pre, func(k, v string) bool {\n\t\t\t\t// filter kvs which exists in cur\n\t\t\t\tif _, ok := mkvs[k]; !ok {\n\t\t\t\t\tkvs = append(kvs, k, v)\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t})\n\t\t}\n\t\tctx = metainfo.WithPersistentValues(ctx, kvs...)\n\t}\n\n\treturn ctx\n}","Signature":"func RecoverCtxOnDemands(ctx context.Context, handler BackupHandler) context.Context","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","File":"backup/metainfo.go","Line":58,"StartOffset":1639,"EndOffset":1649},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"CountPersistentValues","File":"backup/metainfo.go","Line":76,"StartOffset":1959,"EndOffset":1980},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"GetAllPersistentValues","File":"backup/metainfo.go","Line":79,"StartOffset":2066,"EndOffset":2088},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"RangePersistentValues","File":"backup/metainfo.go","Line":84,"StartOffset":2196,"EndOffset":2217},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithPersistentValues","File":"backup/metainfo.go","Line":97,"StartOffset":2520,"EndOffset":2540}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Export","File":"backup/metainfo.go","Line":66,"StartOffset":1752,"EndOffset":1758}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","File":"backup/metainfo.go","Line":62,"StartOffset":1704,"EndOffset":1714}]},"TestMain":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestMain","File":"backup/metainfo_test.go","Line":27,"StartOffset":704,"EndOffset":854,"Content":"func TestMain(m *testing.M) {\n\topts := DefaultOptions()\n\topts.EnableImplicitlyTransmitAsync = true\n\topts.Enable = true\n\tInit(opts)\n\tos.Exit(m.Run())\n}","Signature":"func TestMain(m *testing.M)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"DefaultOptions","File":"backup/metainfo_test.go","Line":28,"StartOffset":743,"EndOffset":757},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"Init","File":"backup/metainfo_test.go","Line":31,"StartOffset":824,"EndOffset":828}]},"TestRecoverCtxOndemands":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","File":"backup/metainfo_test.go","Line":39,"StartOffset":918,"EndOffset":2703,"Content":"func TestRecoverCtxOndemands(t *testing.T) {\n\tctx := context.WithValue(context.Background(), CtxKeyTest1, \"c\")\n\tBackupCtx(metainfo.WithPersistentValues(ctx, \"a\", \"a\", \"b\", \"b\"))\n\n\thandler := BackupHandler(func(prev, cur context.Context) (ctx context.Context, backup bool) {\n\t\tif v := cur.Value(CtxKeyTest1); v == nil {\n\t\t\tv = prev.Value(CtxKeyTest1)\n\t\t\tif v != nil {\n\t\t\t\tctx = context.WithValue(cur, CtxKeyTest1, v)\n\t\t\t} else {\n\t\t\t\tctx = cur\n\t\t\t}\n\t\t\treturn ctx, true\n\t\t}\n\t\treturn cur, false\n\t})\n\ttype args struct {\n\t\tctx context.Context\n\t\thandler BackupHandler\n\t}\n\ttests := []struct {\n\t\tname string\n\t\targs args\n\t\twant context.Context\n\t}{\n\t\t{\n\t\t\tname: \"triggered\",\n\t\t\targs: args{\n\t\t\t\tctx: metainfo.WithValue(metainfo.WithPersistentValue(context.Background(), \"a\", \"aa\"), \"b\", \"bb\"),\n\t\t\t\thandler: handler,\n\t\t\t},\n\t\t\twant: metainfo.WithPersistentValues(ctx, \"a\", \"aa\", \"b\", \"b\"),\n\t\t},\n\t\t{\n\t\t\tname: \"not triggered\",\n\t\t\targs: args{\n\t\t\t\tctx: metainfo.WithValue(metainfo.WithPersistentValue(ctx, \"a\", \"aa\"), \"b\", \"bb\"),\n\t\t\t\thandler: handler,\n\t\t\t},\n\t\t\twant: metainfo.WithValue(metainfo.WithPersistentValue(ctx, \"a\", \"aa\"), \"b\", \"bb\"),\n\t\t},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := RecoverCtxOnDemands(tt.args.ctx, tt.args.handler); got != nil {\n\t\t\t\tif v := got.Value(CtxKeyTest1); v == nil {\n\t\t\t\t\tt.Errorf(\"not got CtxKeyTest1\")\n\t\t\t\t}\n\t\t\t\ta, _ := metainfo.GetPersistentValue(got, \"a\")\n\t\t\t\tae, _ := metainfo.GetPersistentValue(tt.want, \"a\")\n\t\t\t\tif a != ae {\n\t\t\t\t\tt.Errorf(\"CurSession() = %v, want %v\", a, ae)\n\t\t\t\t}\n\t\t\t\tb, _ := metainfo.GetPersistentValue(got, \"b\")\n\t\t\t\tbe, _ := metainfo.GetPersistentValue(tt.want, \"b\")\n\t\t\t\tif b != be {\n\t\t\t\t\tt.Errorf(\"CurSession() = %v, want %v\", b, be)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tt.Fatal(\"no got\")\n\t\t\t}\n\t\t})\n\t}\n}","Signature":"func TestRecoverCtxOndemands(t *testing.T)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupCtx","File":"backup/metainfo_test.go","Line":41,"StartOffset":1030,"EndOffset":1039},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithPersistentValues","File":"backup/metainfo_test.go","Line":41,"StartOffset":1049,"EndOffset":1069},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithValue","File":"backup/metainfo_test.go","Line":67,"StartOffset":1623,"EndOffset":1632},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithPersistentValue","File":"backup/metainfo_test.go","Line":67,"StartOffset":1642,"EndOffset":1661},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","File":"backup/metainfo_test.go","Line":83,"StartOffset":2143,"EndOffset":2162},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"GetPersistentValue","File":"backup/metainfo_test.go","Line":87,"StartOffset":2318,"EndOffset":2336}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupHandler","File":"backup/metainfo_test.go","Line":43,"StartOffset":1109,"EndOffset":1122},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"args","File":"backup/metainfo_test.go","Line":61,"StartOffset":1528,"EndOffset":1532}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"CtxKeyTest1","File":"backup/metainfo_test.go","Line":40,"StartOffset":1011,"EndOffset":1022}]}},"Types":{"BackupHandler":{"Exported":true,"TypeKind":"typedef","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupHandler","File":"backup/metainfo.go","Line":27,"StartOffset":800,"EndOffset":885,"Content":"// BackupHandler is used to decide and recover prev context to cur context\ntype BackupHandler func(prev, cur context.Context) (ctx context.Context, backup bool)"},"CtxKeyTestType":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"CtxKeyTestType","File":"backup/metainfo_test.go","Line":35,"StartOffset":856,"EndOffset":884,"Content":"type CtxKeyTestType struct{}"},"Options":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"Options","File":"backup/metainfo.go","Line":30,"StartOffset":898,"EndOffset":963,"Content":"// Options\ntype Options struct {\n\tEnable bool\n\tlocalsession.ManagerOptions\n}","InlineStruct":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","File":"backup/metainfo.go","Line":32,"StartOffset":934,"EndOffset":961}]}},"Vars":{"CtxKeyTest1":{"IsExported":true,"IsConst":false,"IsPointer":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"CtxKeyTest1","File":"backup/metainfo_test.go","Line":37,"StartOffset":890,"EndOffset":916,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession/backup","Name":"CtxKeyTestType"},"Content":"var CtxKeyTest1 backup.CtxKeyTestType"}}}},"Dependencies":{"github.com/bytedance/gopkg":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","github.com/cloudwego/runtimex":"github.com/cloudwego/runtimex@v0.1.1","github.com/davecgh/go-spew":"github.com/davecgh/go-spew@v1.1.0","github.com/modern-go/reflect2":"github.com/modern-go/reflect2@v1.0.2","github.com/pmezard/go-difflib":"github.com/pmezard/go-difflib@v1.0.0","github.com/stretchr/testify":"github.com/stretchr/testify@v1.7.0","golang.org/x/net":"golang.org/x/net@v0.0.0-20221014081412-f15817d10f9b","golang.org/x/text":"golang.org/x/text@v0.3.7","gopkg.in/yaml.v3":"gopkg.in/yaml.v3@v3.0.0-20200313102051-9f266ea9e77c"},"Files":{"../../../../../Library/Caches/go-build/82/82c49baef651a00e1ad23746fdae64f5320212275be6cba7762255b951c019a7-d":{"Path":"../../../../../Library/Caches/go-build/82/82c49baef651a00e1ad23746fdae64f5320212275be6cba7762255b951c019a7-d","Imports":[{"Path":"\"os\""},{"Path":"\"reflect\""},{"Path":"\"testing\""},{"Path":"\"testing/internal/testdeps\""},{"Alias":"_test","Path":"\"github.com/cloudwego/localsession\""}],"Package":"github.com/cloudwego/localsession.test"},"../../../../../Library/Caches/go-build/d5/d5836dbfe100333ed76b708e65390a160b80c1433a312f94a9c2ba23d005dbd6-d":{"Path":"../../../../../Library/Caches/go-build/d5/d5836dbfe100333ed76b708e65390a160b80c1433a312f94a9c2ba23d005dbd6-d","Imports":[{"Path":"\"os\""},{"Path":"\"reflect\""},{"Path":"\"testing\""},{"Path":"\"testing/internal/testdeps\""},{"Alias":"_test","Path":"\"github.com/cloudwego/localsession/backup\""}],"Package":"github.com/cloudwego/localsession/backup.test"},".github/ISSUE_TEMPLATE/bug_report.md":{"Path":".github/ISSUE_TEMPLATE/bug_report.md"},".github/ISSUE_TEMPLATE/feature_request.md":{"Path":".github/ISSUE_TEMPLATE/feature_request.md"},".github/PULL_REQUEST_TEMPLATE.md":{"Path":".github/PULL_REQUEST_TEMPLATE.md"},".github/workflows/release-check.yml":{"Path":".github/workflows/release-check.yml"},".github/workflows/tests.yml":{"Path":".github/workflows/tests.yml"},".gitignore":{"Path":".gitignore"},".golangci.yaml":{"Path":".golangci.yaml"},".licenserc.yaml":{"Path":".licenserc.yaml"},"CODE_OF_CONDUCT.md":{"Path":"CODE_OF_CONDUCT.md"},"CONTRIBUTING.md":{"Path":"CONTRIBUTING.md"},"LICENSE-APACHE":{"Path":"LICENSE-APACHE"},"README.md":{"Path":"README.md"},"_typos.toml":{"Path":"_typos.toml"},"api_test.go":{"Path":"api_test.go","Imports":[{"Path":"\"context\""},{"Path":"\"fmt\""},{"Path":"\"math\""},{"Path":"\"os\""},{"Path":"\"runtime/pprof\""},{"Path":"\"sync\""},{"Path":"\"testing\""},{"Path":"\"time\""},{"Path":"\"github.com/stretchr/testify/require\""}],"Package":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]"},"backup/metainfo.go":{"Path":"backup/metainfo.go","Imports":[{"Path":"\"context\""},{"Path":"\"github.com/bytedance/gopkg/cloud/metainfo\""},{"Path":"\"github.com/cloudwego/localsession\""}],"Package":"github.com/cloudwego/localsession/backup"},"backup/metainfo_test.go":{"Path":"backup/metainfo_test.go","Imports":[{"Path":"\"context\""},{"Path":"\"os\""},{"Path":"\"testing\""},{"Path":"\"github.com/bytedance/gopkg/cloud/metainfo\""}],"Package":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]"},"check_branch_name.sh":{"Path":"check_branch_name.sh"},"example_test.go":{"Path":"example_test.go","Imports":[{"Path":"\"context\""},{"Path":"\"runtime/pprof\""},{"Path":"\"sync\""},{"Path":"\"time\""}],"Package":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]"},"gls.go":{"Path":"gls.go","Imports":[{"Path":"\"fmt\""},{"Path":"\"os\""},{"Path":"\"strconv\""},{"Path":"\"strings\""},{"Path":"\"sync\""},{"Path":"\"time\""}],"Package":"github.com/cloudwego/localsession"},"go.mod":{"Path":"go.mod"},"go.sum":{"Path":"go.sum"},"manager.go":{"Path":"manager.go","Imports":[{"Path":"\"sync\""},{"Path":"\"sync/atomic\""},{"Path":"\"time\""}],"Package":"github.com/cloudwego/localsession"},"session.go":{"Path":"session.go","Imports":[{"Path":"\"context\""},{"Path":"\"sync\""},{"Path":"\"sync/atomic\""},{"Path":"\"time\""}],"Package":"github.com/cloudwego/localsession"},"stubs.go":{"Path":"stubs.go","Imports":[{"Path":"\"strconv\""},{"Alias":"_","Path":"\"unsafe\""},{"Path":"\"github.com/cloudwego/runtimex\""}],"Package":"github.com/cloudwego/localsession"}}}},"Graph":{"?#int":{"ModPath":"","PkgPath":"","Name":"int","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultShardCap"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultShardCap"}]},"?#untyped int":{"ModPath":"","PkgPath":"","Name":"untyped int","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N"}]},"?#untyped string":{"ModPath":"","PkgPath":"","Name":"untyped string","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Pprof_Label_Session_ID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SESSION_CONFIG_KEY"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Pprof_Label_Session_ID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SESSION_CONFIG_KEY"}]},"?github.com/cloudwego/localsession#Session.Get":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":22},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Get","Line":10},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":23},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":18},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx_EnableImplicitlyTransmitAsync","Line":27},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":19}]},"?github.com/cloudwego/localsession#Session.IsValid":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":45},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":41},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":42}]},"?github.com/cloudwego/localsession#Session.WithValue":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":28},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Set","Line":11},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":24},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":25}]},"?github.com/cloudwego/localsession#SessionCtx":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.Disable"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.Export"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.IsValid"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.Get"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.WithValue"}]},"?github.com/cloudwego/localsession#SessionManager":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.startGC"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.GetSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.UnbindSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.Options"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.Close"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.BindSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.GC"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj"}]},"?github.com/cloudwego/localsession#SessionMap":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.IsValid"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.Get"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.Disable"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.WithValue"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.Export"}]},"?github.com/cloudwego/localsession#SessionMap.WithValue":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.WithValue","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRace","Line":13}]},"?github.com/cloudwego/localsession#shard":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"shard","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard.Delete"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard.Store"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard.Load"}]},"?github.com/cloudwego/localsession#stat":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"stat","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"stat.String"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"stat.Update"}]},"?github.com/cloudwego/localsession/backup#CtxKeyTestType":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession/backup","Name":"CtxKeyTestType","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"CtxKeyTest1"}]},"?sync#Once":{"ModPath":"","PkgPath":"sync","Name":"Once","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerOnce"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerOnce"}]},"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b?github.com/bytedance/gopkg/cloud/metainfo#CountPersistentValues":{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"CountPersistentValues","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"RecoverCtxOnDemands","Line":22},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","Line":22}]},"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b?github.com/bytedance/gopkg/cloud/metainfo#GetAllPersistentValues":{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"GetAllPersistentValues","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"RecoverCtxOnDemands","Line":25},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","Line":25}]},"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b?github.com/bytedance/gopkg/cloud/metainfo#GetPersistentValue":{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"GetPersistentValue","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","Line":48}]},"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b?github.com/bytedance/gopkg/cloud/metainfo#RangePersistentValues":{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"RangePersistentValues","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"RecoverCtxOnDemands","Line":30},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","Line":30}]},"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b?github.com/bytedance/gopkg/cloud/metainfo#WithPersistentValue":{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithPersistentValue","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","Line":28}]},"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b?github.com/bytedance/gopkg/cloud/metainfo#WithPersistentValues":{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithPersistentValues","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"RecoverCtxOnDemands","Line":43},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","Line":43},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","Line":2}]},"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b?github.com/bytedance/gopkg/cloud/metainfo#WithValue":{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithValue","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","Line":28}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#ASSERT":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ASSERT","Type":"FUNC","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":23},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx_EnableImplicitlyTransmitAsync","Line":27}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#BenchmarkGLS_Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Get","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","Line":10},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":12},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","Line":10},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#BenchmarkGLS_Set":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Set","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":9},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","Line":11},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":13},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","Line":11},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#BenchmarkLoops":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkLoops","Type":"FUNC"},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#BenchmarkSessionCtx_Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionCtx_Get","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#BenchmarkSessionCtx_WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionCtx_WithValue","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#BenchmarkSessionManager_BindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionManager_BindSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":5}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#BenchmarkSessionManager_CurSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionManager_CurSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":8}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#BenchmarkSessionMap_Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionMap_Get","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#BenchmarkSessionMap_WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionMap_WithValue","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#BindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":17},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionManager_BindSession","Line":5},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Get","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Set","Line":9},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionManager_CurSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":17},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","Line":9},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":13},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx_EnableImplicitlyTransmitAsync","Line":16},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":14}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#CurSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Go","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GetCurSession","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#DefaultManagerOptions":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"DefaultManagerOptions","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestResetDefaultManager","Line":19},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestMain","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#ExampleSessionCtx":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"DefaultManagerOptions","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":11},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":17},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Go","Line":20},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GetCurSession","Line":22},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ASSERT","Line":23},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","Line":33},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":101},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","Line":22},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","Line":28},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","Line":45}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#ExampleSessionCtx_EnableImplicitlyTransmitAsync":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx_EnableImplicitlyTransmitAsync","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","Line":13},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":16},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ASSERT","Line":27},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","Line":27},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":35},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","Line":27},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#GetCurSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GetCurSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":22}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#GetDefaultManager":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GetDefaultManager","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#Go":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Go","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","Line":3}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":20},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":16},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":17}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#GoSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":9}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":33},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":29},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Go","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":30}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#InitDefaultManager":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"checkEnvOptions","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","Line":5}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestResetDefaultManager","Line":10},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestMain","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx_EnableImplicitlyTransmitAsync","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#ManagerOptions":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRace","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionManager_GC","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestResetDefaultManager","Line":5},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"DefaultManagerOptions","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRealBizGLS","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx_EnableImplicitlyTransmitAsync","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#N":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"","Name":"untyped int"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionMap_WithValue","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Get","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionCtx_WithValue","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Set","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionMap_Get","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionCtx_Get","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#NewSessionCtx":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx","Line":3}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":11},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionManager_BindSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Get","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionCtx_WithValue","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Set","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtxWithTimeout","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionManager_CurSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"emitLoops","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionCtx_Get","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":8}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#NewSessionCtxWithTimeout":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtxWithTimeout","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionTimeout","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#NewSessionManager":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"newShard","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager","Line":8}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRace","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionManager_GC","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRealBizGLS","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","Line":8}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#NewSessionMap":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap","Line":3}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionMap_WithValue","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRace","Line":13},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionManager_GC","Line":11},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":7},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionMap_Get","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":7},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx_EnableImplicitlyTransmitAsync","Line":13},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMapWithTimeout","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#NewSessionMapWithTimeout":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMapWithTimeout","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionTimeout","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#Pprof_Label_Session_ID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Pprof_Label_Session_ID","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"","Name":"untyped string"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"clearSessionID","Line":5},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"transmitSessionID","Line":9},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getSessionID","Line":5}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SESSION_CONFIG_KEY":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SESSION_CONFIG_KEY","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"","Name":"untyped string"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestResetDefaultManager","Line":18},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"checkEnvOptions","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#Session":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionMap_WithValue","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Get","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionCtx_WithValue","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Set","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionMap_Get","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"newShard","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionCtx_Get","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.GC","Line":8}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#Session.Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session.Get","Type":"FUNC"},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#Session.IsValid":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session.IsValid","Type":"FUNC"},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#Session.WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session.WithValue","Type":"FUNC"},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionCtx":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.WithValue","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":3}],"Implements":[{"Kind":"Implement","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionCtx.Disable":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.Disable","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionCtx.Export":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.Export","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionCtx.Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.Get","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionCtx.IsValid":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.IsValid","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionCtx.WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.WithValue","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx","Line":2},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRace","Line":15},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionManager_GC","Line":12},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"emitLoops","Line":10},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"newShard","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getSessionID","Line":12},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.GC","Line":8}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionManager":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","Line":8}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionManager.BindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.BindSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"transmitSessionID","Line":6},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionManager.Close":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.Close","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionManager.GC":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.GC","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","Line":8},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionManager.GetSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.GetSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getSessionID","Line":10},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionManager.Options":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.Options","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionManager.UnbindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.UnbindSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"clearSessionID","Line":9},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionManager.startGC":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.startGC","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionMap":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","Line":3}],"Implements":[{"Kind":"Implement","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionMap.Disable":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.Disable","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionMap.Export":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.Export","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionMap.Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.Get","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionMap.IsValid":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.IsValid","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionMap.WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.WithValue","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#TestMain":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestMain","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"DefaultManagerOptions","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#TestRace":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRace","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","Line":13},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.WithValue","Line":13},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","Line":15}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#TestRealBizGLS":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRealBizGLS","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"emitLoops","Line":10},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"stat","Line":6}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#TestResetDefaultManager":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestResetDefaultManager","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","Line":10},{"Kind":"Dependency","ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","Line":12},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"DefaultManagerOptions","Line":19},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","Line":5},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerOnce","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SESSION_CONFIG_KEY","Line":18}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#TestSessionCtx":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":14},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Go","Line":17},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","Line":19},{"Kind":"Dependency","ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","Line":20},{"Kind":"Dependency","ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Nil","Line":27},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","Line":30},{"Kind":"Dependency","ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"False","Line":42},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":98},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","Line":19},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","Line":25},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","Line":42}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#TestSessionManager_GC":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionManager_GC","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","Line":11},{"Kind":"Dependency","ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","Line":21},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","Line":12}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#TestSessionMap":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","Line":7},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":13},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Go","Line":16},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","Line":18},{"Kind":"Dependency","ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","Line":19},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","Line":29},{"Kind":"Dependency","ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"False","Line":41},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":97},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","Line":18},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","Line":24},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","Line":41}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#TestSessionTimeout":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionTimeout","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtxWithTimeout","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMapWithTimeout","Line":3},{"Kind":"Dependency","ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"False","Line":6}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#TestTransparentTransmitAsync":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","Line":7},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":17},{"Kind":"Dependency","ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","Line":23},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","Line":23},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":31},{"Kind":"Dependency","ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Nil","Line":32},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","Line":23},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerOnce","Line":42}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#UnbindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":101},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Get","Line":12},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Set","Line":13},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionManager_CurSession","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":31},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":97},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx_EnableImplicitlyTransmitAsync","Line":35},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":98}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#checkEnvOptions":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"checkEnvOptions","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SESSION_CONFIG_KEY","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#clearSessionID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"clearSessionID","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getPproLabel","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"setPprofLabel","Line":14},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"labelMap","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Pprof_Label_Session_ID","Line":5}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.UnbindSession","Line":9}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#defaultManagerObj":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GetDefaultManager","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestResetDefaultManager","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","Line":5},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#defaultManagerOnce":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerOnce","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"sync","Name":"Once"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestResetDefaultManager","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":42}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#defaultShardCap":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultShardCap","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"","Name":"int"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"newShard","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#emitLoops":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"emitLoops","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","Line":10},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","Line":10}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRealBizGLS","Line":10}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#getPproLabel":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getPproLabel","Type":"FUNC","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"clearSessionID","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"transmitSessionID","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getSessionID","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#getSessionID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getSessionID","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getPproLabel","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","Line":12},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Pprof_Label_Session_ID","Line":5}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.GetSession","Line":10}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#goID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/runtimex@v0.1.1","PkgPath":"github.com/cloudwego/runtimex","Name":"GID","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"emitLoops","Line":10},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#labelMap":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"labelMap","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"clearSessionID","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"transmitSessionID","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#mustCurSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Get","Line":10},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Set","Line":11},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionManager_CurSession","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":23},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":18},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx_EnableImplicitlyTransmitAsync","Line":27},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":19}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#newShard":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"newShard","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultShardCap","Line":2}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","Line":6}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#setPprofLabel":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"setPprofLabel","Type":"FUNC","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"clearSessionID","Line":14},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"transmitSessionID","Line":16}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#shard":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"newShard","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#shard.Delete":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard.Delete","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#shard.Load":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard.Load","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#shard.Store":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard.Store","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#stat":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"stat","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRealBizGLS","Line":6}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#stat.String":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"stat.String","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"stat"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#stat.Update":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"stat.Update","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"stat"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#transmitSessionID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"transmitSessionID","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getPproLabel","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"setPprofLabel","Line":16},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"labelMap","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Pprof_Label_Session_ID","Line":9}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.BindSession","Line":6}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#BindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"goID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.BindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GoSession","Line":9},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"BackupCtx","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupCtx","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#CurSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"goID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GetSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Go","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"RecoverCtxOnDemands","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#DefaultManagerOptions":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"DefaultManagerOptions","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"DefaultOptions","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"DefaultOptions","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#GetDefaultManager":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GetDefaultManager","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"BackupCtx","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupCtx","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#Go":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Go","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GoSession","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#GoSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GoSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","Line":9}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Go","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#InitDefaultManager":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"checkEnvOptions","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionManager","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Close","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","Line":5}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Init","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"Init","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#ManagerOptions":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"checkEnvOptions"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionManager"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Options"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"DefaultManagerOptions"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#NewSessionCtx":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtx","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtxWithTimeout","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"BackupCtx","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupCtx","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#NewSessionCtxWithTimeout":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtxWithTimeout","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtx","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Disable","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#NewSessionManager":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionManager","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"newShard","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.startGC","Line":14},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard","Line":4}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager","Line":8}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#NewSessionMap":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionMap","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionMapWithTimeout","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#NewSessionMapWithTimeout":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionMapWithTimeout","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionMap","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Disable","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#Pprof_Label_Session_ID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Pprof_Label_Session_ID","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"","Name":"untyped string"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"clearSessionID","Line":5},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"transmitSessionID","Line":9},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getSessionID","Line":5}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SESSION_CONFIG_KEY":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SESSION_CONFIG_KEY","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"","Name":"untyped string"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"checkEnvOptions","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#Session":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GoSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Store"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GC","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GetSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"newShard","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.BindSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.WithValue"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.WithValue"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Load"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#Session.Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","Type":"FUNC"},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#Session.IsValid":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","Type":"FUNC","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GC","Line":11}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#Session.WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","Type":"FUNC"},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionCtx":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtx"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtxWithTimeout"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Get"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.IsValid"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.WithValue","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Disable"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Export"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"RecoverCtxOnDemands","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","Line":8}],"Implements":[{"Kind":"Implement","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionCtx.Disable":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Disable","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtxWithTimeout","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionCtx.Export":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Export","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"RecoverCtxOnDemands","Line":12},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","Line":12}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionCtx.Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Get","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionCtx.IsValid":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.IsValid","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionCtx.WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.WithValue","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Store"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GC","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Delete"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GetSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.UnbindSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"newShard","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"transmitSessionID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.BindSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getSessionID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Load"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionManager":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager","Type":"TYPE","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","Line":4}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionManager"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GC"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GetSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.UnbindSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.startGC"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.BindSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Close"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Options"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GetDefaultManager"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionManager.BindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.BindSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"transmitSessionID","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Store","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionManager.Close":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Close","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager","Line":6}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionManager.GC":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GC","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","Line":11},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.startGC","Line":7}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionManager.GetSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GetSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getSessionID","Line":10},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Load","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionManager.Options":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Options","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionManager.UnbindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.UnbindSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"clearSessionID","Line":9},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Load","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Delete","Line":5},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionManager.startGC":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.startGC","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GC","Line":7},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionManager","Line":14}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionMap":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Disable"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionMapWithTimeout"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Export"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionMap"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Get"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.IsValid"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.WithValue"}],"Implements":[{"Kind":"Implement","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionMap.Disable":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Disable","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionMapWithTimeout","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionMap.Export":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Export","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionMap.Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Get","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionMap.IsValid":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.IsValid","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionMap.WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.WithValue","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#UnbindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"goID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.UnbindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GoSession","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"ClearCtx","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"ClearCtx","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#checkEnvOptions":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"checkEnvOptions","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SESSION_CONFIG_KEY","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#clearSessionID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"clearSessionID","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getPproLabel","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"setPprofLabel","Line":14},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"labelMap","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Pprof_Label_Session_ID","Line":5}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.UnbindSession","Line":9}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#defaultManagerObj":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager","Line":5},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GetDefaultManager","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#defaultManagerOnce":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerOnce","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"sync","Name":"Once"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#defaultShardCap":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultShardCap","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"","Name":"int"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"newShard","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#getPproLabel":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getPproLabel","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"labelMap"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"clearSessionID","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"transmitSessionID","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getSessionID","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#getSessionID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getSessionID","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getPproLabel","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Pprof_Label_Session_ID","Line":5}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GetSession","Line":10}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#goID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"goID","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/runtimex@v0.1.1","PkgPath":"github.com/cloudwego/runtimex","Name":"GID","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#labelMap":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"labelMap","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"setPprofLabel"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"clearSessionID","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getPproLabel"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"transmitSessionID","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#newShard":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"newShard","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultShardCap","Line":2}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionManager","Line":6}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#setPprofLabel":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"setPprofLabel","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"labelMap"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"clearSessionID","Line":14},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"transmitSessionID","Line":16}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#shard":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard","Type":"TYPE","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","Line":2}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Store"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionManager","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Delete"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"newShard"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Load"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#shard.Delete":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Delete","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.UnbindSession","Line":5}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#shard.Load":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Load","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GetSession","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.UnbindSession","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#shard.Store":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Store","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.BindSession","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#transmitSessionID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"transmitSessionID","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getPproLabel","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"setPprofLabel","Line":16},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"labelMap","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Pprof_Label_Session_ID","Line":9}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.BindSession","Line":6}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#BackupCtx":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupCtx","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GetDefaultManager","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtx","Line":4}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#BackupHandler":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupHandler","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#ClearCtx":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"ClearCtx","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#CtxKeyTest1":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"CtxKeyTest1","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession/backup","Name":"CtxKeyTestType"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#CtxKeyTestType":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"CtxKeyTestType","Type":"TYPE"},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#DefaultOptions":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"DefaultOptions","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"DefaultManagerOptions","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"Options","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestMain","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#Init":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"Init","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager","Line":2}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestMain","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#Options":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"Options","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"DefaultOptions","Line":1}],"Inherits":[{"Kind":"Inherit","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#RecoverCtxOnDemands":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"CountPersistentValues","Line":22},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"GetAllPersistentValues","Line":25},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"RangePersistentValues","Line":30},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithPersistentValues","Line":43},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Export","Line":12},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","Line":8}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","Line":44}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#TestMain":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestMain","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"DefaultOptions","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"Init","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#TestRecoverCtxOndemands":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupCtx","Line":2},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithPersistentValues","Line":2},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithValue","Line":28},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithPersistentValue","Line":28},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","Line":44},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"GetPersistentValue","Line":48},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupHandler","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"args","Line":22},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"CtxKeyTest1","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#args":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"args","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","Line":22}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup#BackupCtx":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"BackupCtx","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GetDefaultManager","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtx","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup#BackupHandler":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"BackupHandler","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"RecoverCtxOnDemands"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup#ClearCtx":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"ClearCtx","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup#DefaultOptions":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"DefaultOptions","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Options"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"DefaultManagerOptions","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup#Init":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Init","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Options"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup#Options":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Options","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"DefaultOptions"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Init"}],"Inherits":[{"Kind":"Inherit","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup#RecoverCtxOnDemands":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"RecoverCtxOnDemands","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"BackupHandler"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"CountPersistentValues","Line":22},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"GetAllPersistentValues","Line":25},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"RangePersistentValues","Line":30},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithPersistentValues","Line":43},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Export","Line":12},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","Line":8}]},"github.com/cloudwego/runtimex@v0.1.1?github.com/cloudwego/runtimex#GID":{"ModPath":"github.com/cloudwego/runtimex@v0.1.1","PkgPath":"github.com/cloudwego/runtimex","Name":"GID","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"goID","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","Line":1}]},"github.com/stretchr/testify@v1.7.0?github.com/stretchr/testify/require#Equal":{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionManager_GC","Line":21},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestResetDefaultManager","Line":12},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":23},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":19},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":20}]},"github.com/stretchr/testify@v1.7.0?github.com/stretchr/testify/require#False":{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"False","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionTimeout","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":41},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":42}]},"github.com/stretchr/testify@v1.7.0?github.com/stretchr/testify/require#Nil":{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Nil","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":32},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":27}]}}} \ No newline at end of file +{"id":"/Users/bytedance/golang/work/abcoder/tmp/localsession","ASTVersion":"v0.1.2","ToolVersion":"","Path":"","Modules":{"github.com/cloudwego/localsession":{"Language":"go","Version":"","Name":"github.com/cloudwego/localsession","Dir":".","Packages":{"github.com/cloudwego/localsession":{"IsMain":false,"IsTest":false,"PkgPath":"github.com/cloudwego/localsession","Functions":{"BindSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","File":"gls.go","Line":115,"StartOffset":3200,"EndOffset":3457,"Content":"// BindSession binds the session with current goroutine\n//\n// NOTICE: MUST call `InitDefaultManager()` once before using this API\nfunc BindSession(s Session) {\n\tif defaultManagerObj == nil {\n\t\treturn\n\t}\n\tdefaultManagerObj.BindSession(SessionID(goID()), s)\n}","Signature":"func BindSession(s Session)","Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"gls.go","Line":115,"StartOffset":3347,"EndOffset":3356}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"goID","File":"gls.go","Line":119,"StartOffset":3444,"EndOffset":3448}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.BindSession","File":"gls.go","Line":119,"StartOffset":3422,"EndOffset":3433}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"gls.go","Line":119,"StartOffset":3434,"EndOffset":3443}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","File":"gls.go","Line":116,"StartOffset":3364,"EndOffset":3381}]},"CurSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","File":"gls.go","Line":104,"StartOffset":2908,"EndOffset":3198,"Content":"// CurSession gets the session for current goroutine\n//\n// NOTICE: MUST call `InitDefaultManager()` once before using this API\nfunc CurSession() (Session, bool) {\n\tif defaultManagerObj == nil {\n\t\treturn nil, false\n\t}\n\ts, ok := defaultManagerObj.GetSession(SessionID(goID()))\n\treturn s, ok\n}","Signature":"func CurSession() (Session, bool)","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"gls.go","Line":104,"StartOffset":3054,"EndOffset":3061}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"goID","File":"gls.go","Line":108,"StartOffset":3174,"EndOffset":3178}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GetSession","File":"gls.go","Line":108,"StartOffset":3153,"EndOffset":3163}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"gls.go","Line":108,"StartOffset":3164,"EndOffset":3173}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","File":"gls.go","Line":105,"StartOffset":3075,"EndOffset":3092}]},"DefaultManagerOptions":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"DefaultManagerOptions","File":"gls.go","Line":42,"StartOffset":1270,"EndOffset":1546,"Content":"// DefaultManagerOptions returns default options for the default manager\nfunc DefaultManagerOptions() ManagerOptions {\n\treturn ManagerOptions{\n\t\tShardNumber: 100,\n\t\tGCInterval: time.Minute * 10,\n\t\tEnableImplicitlyTransmitAsync: false,\n\t}\n}","Signature":"func DefaultManagerOptions() ManagerOptions","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","File":"gls.go","Line":42,"StartOffset":1372,"EndOffset":1386}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","File":"gls.go","Line":43,"StartOffset":1397,"EndOffset":1411}]},"GetDefaultManager":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GetDefaultManager","File":"gls.go","Line":51,"StartOffset":1548,"EndOffset":1667,"Content":"// GetDefaultManager returns the default manager\nfunc GetDefaultManager() *SessionManager {\n\treturn defaultManagerObj\n}","Signature":"func GetDefaultManager() *SessionManager","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager","File":"gls.go","Line":51,"StartOffset":1622,"EndOffset":1637}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","File":"gls.go","Line":52,"StartOffset":1648,"EndOffset":1665}]},"Go":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Go","File":"gls.go","Line":137,"StartOffset":3868,"EndOffset":4049,"Content":"// Go calls f asynchronously and pass caller's session to the new goroutine\nfunc Go(f func()) {\n\ts, ok := CurSession()\n\tif !ok {\n\t\tGoSession(nil, f)\n\t} else {\n\t\tGoSession(s, f)\n\t}\n}","Signature":"func Go(f func())","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","File":"gls.go","Line":138,"StartOffset":3974,"EndOffset":3984},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GoSession","File":"gls.go","Line":140,"StartOffset":3999,"EndOffset":4008}]},"GoSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GoSession","File":"gls.go","Line":147,"StartOffset":4051,"EndOffset":4361,"Content":"// SessionGo calls f asynchronously and pass s session to the new goroutine\nfunc GoSession(s Session, f func()) {\n\tgo func() {\n\t\tdefer func() {\n\t\t\tif v := recover(); v != nil {\n\t\t\t\tprintln(fmt.Sprintf(\"GoSession recover: %v\", v))\n\t\t\t}\n\t\t\tUnbindSession()\n\t\t}()\n\t\tif s != nil {\n\t\t\tBindSession(s)\n\t\t}\n\t\tf()\n\t}()\n}","Signature":"func GoSession(s Session, f func())","Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"gls.go","Line":147,"StartOffset":4142,"EndOffset":4151}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","File":"gls.go","Line":153,"StartOffset":4289,"EndOffset":4302},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","File":"gls.go","Line":156,"StartOffset":4330,"EndOffset":4341}]},"InitDefaultManager":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager","File":"gls.go","Line":64,"StartOffset":1669,"EndOffset":2277,"Content":"// InitDefaultManager update and restart default manager.\n// It accept argument opts and env config both.\n//\n// NOTICE:\n// - It use env SESSION_CONFIG_KEY prior to argument opts;\n// - If both env and opts are empty, it won't reset manager;\n// - For concurrent safety, you can only successfully reset manager ONCE.\n//\n//go:nocheckptr\nfunc InitDefaultManager(opts ManagerOptions) {\n\tdefaultManagerOnce.Do(func() {\n\t\t// env config has high priority\n\t\tcheckEnvOptions(\u0026opts)\n\n\t\tif defaultManagerObj != nil {\n\t\t\tdefaultManagerObj.Close()\n\t\t}\n\t\tobj := NewSessionManager(opts)\n\t\tdefaultManagerObj = \u0026obj\n\t})\n}","Signature":"func InitDefaultManager(opts ManagerOptions)","Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","File":"gls.go","Line":64,"StartOffset":2032,"EndOffset":2051}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"checkEnvOptions","File":"gls.go","Line":67,"StartOffset":2123,"EndOffset":2138},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionManager","File":"gls.go","Line":72,"StartOffset":2221,"EndOffset":2238}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Close","File":"gls.go","Line":70,"StartOffset":2200,"EndOffset":2205}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","File":"gls.go","Line":69,"StartOffset":2152,"EndOffset":2169}]},"NewSessionCtx":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtx","File":"session.go","Line":44,"StartOffset":1225,"EndOffset":1436,"Content":"// NewSessionCtx creates and enables a SessionCtx\nfunc NewSessionCtx(ctx context.Context) SessionCtx {\n\tvar enabled atomic.Value\n\tenabled.Store(true)\n\treturn SessionCtx{\n\t\tenabled: \u0026enabled,\n\t\tstorage: ctx,\n\t}\n}","Signature":"func NewSessionCtx(ctx context.Context) SessionCtx","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","File":"session.go","Line":44,"StartOffset":1315,"EndOffset":1325}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","File":"session.go","Line":47,"StartOffset":1383,"EndOffset":1393}]},"NewSessionCtxWithTimeout":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtxWithTimeout","File":"session.go","Line":55,"StartOffset":1438,"EndOffset":1720,"Content":"// NewSessionCtx creates and enables a SessionCtx,\n// and disable the session after timeout\nfunc NewSessionCtxWithTimeout(ctx context.Context, timeout time.Duration) SessionCtx {\n\tret := NewSessionCtx(ctx)\n\tgo func() {\n\t\t\u003c-time.NewTimer(timeout).C\n\t\tret.Disable()\n\t}()\n\treturn ret\n}","Signature":"func NewSessionCtxWithTimeout(ctx context.Context, timeout time.Duration) SessionCtx","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","File":"session.go","Line":55,"StartOffset":1604,"EndOffset":1614}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtx","File":"session.go","Line":56,"StartOffset":1625,"EndOffset":1638}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Disable","File":"session.go","Line":59,"StartOffset":1692,"EndOffset":1699}]},"NewSessionManager":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionManager","File":"manager.go","Line":63,"StartOffset":1636,"EndOffset":2138,"Content":"// NewSessionManager creates a SessionManager with default containers\n// If opts.GCInterval \u003e 0, it will start scheduled GC() loop automatically\nfunc NewSessionManager(opts ManagerOptions) SessionManager {\n\tif opts.ShardNumber \u003c= 0 {\n\t\tpanic(\"ShardNumber must be larger than zero\")\n\t}\n\tshards := make([]*shard, opts.ShardNumber)\n\tfor i := range shards {\n\t\tshards[i] = newShard()\n\t}\n\tret := SessionManager{\n\t\tshards: shards,\n\t\topts: opts,\n\t}\n\n\tif opts.GCInterval \u003e 0 {\n\t\tret.startGC()\n\t}\n\treturn ret\n}","Signature":"func NewSessionManager(opts ManagerOptions) SessionManager","Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","File":"manager.go","Line":63,"StartOffset":1804,"EndOffset":1823}],"Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager","File":"manager.go","Line":63,"StartOffset":1825,"EndOffset":1839}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"newShard","File":"manager.go","Line":69,"StartOffset":2004,"EndOffset":2012}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.startGC","File":"manager.go","Line":77,"StartOffset":2112,"EndOffset":2119}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard","File":"manager.go","Line":67,"StartOffset":1940,"EndOffset":1945},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager","File":"manager.go","Line":71,"StartOffset":2026,"EndOffset":2040}]},"NewSessionMap":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionMap","File":"session.go","Line":102,"StartOffset":2676,"EndOffset":2897,"Content":"// NewSessionMap creates and enables a SessionMap\nfunc NewSessionMap(m map[interface{}]interface{}) *SessionMap {\n\tvar enabled atomic.Value\n\tenabled.Store(true)\n\treturn \u0026SessionMap{\n\t\tenabled: \u0026enabled,\n\t\tstorage: m,\n\t}\n}","Signature":"func NewSessionMap(m map[interface{}]interface{}) *SessionMap","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap","File":"session.go","Line":102,"StartOffset":2776,"EndOffset":2787}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap","File":"session.go","Line":105,"StartOffset":2846,"EndOffset":2856}]},"NewSessionMapWithTimeout":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionMapWithTimeout","File":"session.go","Line":113,"StartOffset":2899,"EndOffset":3190,"Content":"// NewSessionCtx creates and enables a SessionCtx,\n// and disable the session after timeout\nfunc NewSessionMapWithTimeout(m map[interface{}]interface{}, timeout time.Duration) *SessionMap {\n\tret := NewSessionMap(m)\n\tgo func() {\n\t\t\u003c-time.NewTimer(timeout).C\n\t\tret.Disable()\n\t}()\n\treturn ret\n}","Signature":"func NewSessionMapWithTimeout(m map[interface{}]interface{}, timeout time.Duration) *SessionMap","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap","File":"session.go","Line":113,"StartOffset":3075,"EndOffset":3086}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionMap","File":"session.go","Line":114,"StartOffset":3097,"EndOffset":3110}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Disable","File":"session.go","Line":117,"StartOffset":3162,"EndOffset":3169}]},"Session.Get":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":true,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","File":"session.go","Line":30,"StartOffset":821,"EndOffset":892,"Content":"// Get returns value for specific key\nGet(key interface{}) interface{}","Signature":"// Get returns value for specific key\nGet(key interface{}) interface{}"},"Session.IsValid":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":true,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","File":"session.go","Line":27,"StartOffset":751,"EndOffset":818,"Content":"// IsValid tells if the session is valid at present\nIsValid() bool","Signature":"// IsValid tells if the session is valid at present\nIsValid() bool"},"Session.WithValue":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":true,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","File":"session.go","Line":33,"StartOffset":895,"EndOffset":1025,"Content":"// WithValue sets value for specific key,and return newly effective session\nWithValue(key interface{}, val interface{}) Session","Signature":"// WithValue sets value for specific key,and return newly effective session\nWithValue(key interface{}, val interface{}) Session"},"SessionCtx.Disable":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Disable","File":"session.go","Line":65,"StartOffset":1722,"EndOffset":1813,"Content":"// Disable ends the session\nfunc (self SessionCtx) Disable() {\n\tself.enabled.Store(false)\n}","Signature":"func (self SessionCtx) Disable()","Receiver":{"IsPointer":false,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}}},"SessionCtx.Export":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Export","File":"session.go","Line":70,"StartOffset":1815,"EndOffset":1924,"Content":"// Export exports underlying context\nfunc (self SessionCtx) Export() context.Context {\n\treturn self.storage\n}","Signature":"func (self SessionCtx) Export() context.Context","Receiver":{"IsPointer":false,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}}},"SessionCtx.Get":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Get","File":"session.go","Line":80,"StartOffset":2056,"EndOffset":2177,"Content":"// Get value for specific key\nfunc (self SessionCtx) Get(key interface{}) interface{} {\n\treturn self.storage.Value(key)\n}","Signature":"func (self SessionCtx) Get(key interface{}) interface{}","Receiver":{"IsPointer":false,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}}},"SessionCtx.IsValid":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.IsValid","File":"session.go","Line":75,"StartOffset":1926,"EndOffset":2054,"Content":"// IsValid tells if the session is valid at present\nfunc (self SessionCtx) IsValid() bool {\n\treturn self.enabled.Load().(bool)\n}","Signature":"func (self SessionCtx) IsValid() bool","Receiver":{"IsPointer":false,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}}},"SessionCtx.WithValue":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.WithValue","File":"session.go","Line":85,"StartOffset":2179,"EndOffset":2438,"Content":"// Set value for specific key,and return newly effective session\nfunc (self SessionCtx) WithValue(key interface{}, val interface{}) Session {\n\tctx := context.WithValue(self.storage, key, val)\n\treturn SessionCtx{\n\t\tenabled: self.enabled,\n\t\tstorage: ctx,\n\t}\n}","Signature":"func (self SessionCtx) WithValue(key interface{}, val interface{}) Session","Receiver":{"IsPointer":false,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}},"Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"session.go","Line":85,"StartOffset":2313,"EndOffset":2320}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","File":"session.go","Line":87,"StartOffset":2381,"EndOffset":2391}]},"SessionManager.BindSession":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.BindSession","File":"manager.go","Line":134,"StartOffset":3290,"EndOffset":3573,"Content":"// BindSession binds the session with current goroutine\nfunc (self *SessionManager) BindSession(id SessionID, s Session) {\n\tshard := self.shards[uint64(id)%uint64(self.opts.ShardNumber)]\n\n\tshard.Store(id, s)\n\n\tif self.opts.EnableImplicitlyTransmitAsync {\n\t\ttransmitSessionID(id)\n\t}\n}","Signature":"func (self *SessionManager) BindSession(id SessionID, s Session)","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}},"Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"manager.go","Line":134,"StartOffset":3386,"EndOffset":3398},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"manager.go","Line":134,"StartOffset":3400,"EndOffset":3409}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"transmitSessionID","File":"manager.go","Line":140,"StartOffset":3547,"EndOffset":3564}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Store","File":"manager.go","Line":137,"StartOffset":3485,"EndOffset":3490}]},"SessionManager.Close":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Close","File":"manager.go","Line":200,"StartOffset":4874,"EndOffset":5010,"Content":"// Close stop persistent work for the manager, like GC\nfunc (self SessionManager) Close() {\n\tif self.tik != nil {\n\t\tself.tik.Stop()\n\t}\n}","Signature":"func (self SessionManager) Close()","Receiver":{"IsPointer":false,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}}},"SessionManager.GC":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GC","File":"manager.go","Line":163,"StartOffset":4014,"EndOffset":4549,"Content":"// GC sweep invalid sessions and release unused memory\nfunc (self SessionManager) GC() {\n\tif !atomic.CompareAndSwapUint32(\u0026self.inGC, 0, 1) {\n\t\treturn\n\t}\n\n\tfor _, shard := range self.shards {\n\t\tshard.lock.Lock()\n\t\tn := shard.m\n\t\tm := make(map[SessionID]Session, len(n))\n\t\tfor id, s := range n {\n\t\t\t// Warning: may panic here?\n\t\t\tif s.IsValid() {\n\t\t\t\tm[id] = s\n\t\t\t}\n\t\t}\n\t\t// atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(\u0026shard.m)), unsafe.Pointer(\u0026m))\n\t\tshard.m = m\n\t\tshard.lock.Unlock()\n\t}\n\n\tatomic.StoreUint32(\u0026self.inGC, 0)\n}","Signature":"func (self SessionManager) GC()","Receiver":{"IsPointer":false,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}},"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","File":"manager.go","Line":174,"StartOffset":4348,"EndOffset":4355}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"manager.go","Line":171,"StartOffset":4257,"EndOffset":4266},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"manager.go","Line":171,"StartOffset":4267,"EndOffset":4274}]},"SessionManager.GetSession":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GetSession","File":"manager.go","Line":115,"StartOffset":2768,"EndOffset":3288,"Content":"// Get gets specific session\n// or get inherited session if option EnableImplicitlyTransmitAsync is true\nfunc (self *SessionManager) GetSession(id SessionID) (Session, bool) {\n\tshard := self.shards[uint64(id)%uint64(self.opts.ShardNumber)]\n\tsession, ok := shard.Load(id)\n\tif ok {\n\t\treturn session, ok\n\t}\n\tif !self.opts.EnableImplicitlyTransmitAsync {\n\t\treturn nil, false\n\t}\n\n\tid, ok = getSessionID()\n\tif !ok {\n\t\treturn nil, false\n\t}\n\tshard = self.shards[uint64(id)%uint64(self.opts.ShardNumber)]\n\treturn shard.Load(id)\n}","Signature":"func (self *SessionManager) GetSession(id SessionID) (Session, bool)","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}},"Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"manager.go","Line":115,"StartOffset":2912,"EndOffset":2924}],"Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"manager.go","Line":115,"StartOffset":2927,"EndOffset":2934}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getSessionID","File":"manager.go","Line":125,"StartOffset":3153,"EndOffset":3165}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Load","File":"manager.go","Line":117,"StartOffset":3030,"EndOffset":3034}]},"SessionManager.Options":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Options","File":"manager.go","Line":83,"StartOffset":2140,"EndOffset":2252,"Content":"// Options shows the manager's Options\nfunc (self SessionManager) Options() ManagerOptions {\n\treturn self.opts\n}","Signature":"func (self SessionManager) Options() ManagerOptions","Receiver":{"IsPointer":false,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}},"Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","File":"manager.go","Line":83,"StartOffset":2216,"EndOffset":2230}]},"SessionManager.UnbindSession":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.UnbindSession","File":"manager.go","Line":149,"StartOffset":3575,"EndOffset":4012,"Content":"// UnbindSession clears current session\n//\n// Notice: If you want to end the session,\n// please call `Disable()` (or whatever make the session invalid)\n// on your session's implementation\nfunc (self *SessionManager) UnbindSession(id SessionID) {\n\tshard := self.shards[uint64(id)%uint64(self.opts.ShardNumber)]\n\n\t_, ok := shard.Load(id)\n\tif ok {\n\t\tshard.Delete(id)\n\t}\n\n\tif self.opts.EnableImplicitlyTransmitAsync {\n\t\tclearSessionID()\n\t}\n}","Signature":"func (self *SessionManager) UnbindSession(id SessionID)","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}},"Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"manager.go","Line":149,"StartOffset":3805,"EndOffset":3817}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"clearSessionID","File":"manager.go","Line":158,"StartOffset":3991,"EndOffset":4005}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Load","File":"manager.go","Line":152,"StartOffset":3902,"EndOffset":3906},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Delete","File":"manager.go","Line":154,"StartOffset":3928,"EndOffset":3934}]},"SessionManager.startGC":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.startGC","File":"manager.go","Line":187,"StartOffset":4551,"EndOffset":4872,"Content":"// startGC start a scheduled goroutine to call GC() according to GCInterval\nfunc (self *SessionManager) startGC() {\n\tif self.opts.GCInterval \u003c time.Second {\n\t\tpanic(\"GCInterval must be larger than 1 second\")\n\t}\n\tself.tik = time.NewTicker(self.opts.GCInterval)\n\tgo func() {\n\t\tfor range self.tik.C {\n\t\t\tself.GC()\n\t\t}\n\t}()\n}","Signature":"func (self *SessionManager) startGC()","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}},"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GC","File":"manager.go","Line":194,"StartOffset":4857,"EndOffset":4859}]},"SessionMap.Disable":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Disable","File":"session.go","Line":131,"StartOffset":3359,"EndOffset":3481,"Content":"// Disable ends the session\nfunc (self *SessionMap) Disable() {\n\tif self == nil {\n\t\treturn\n\t}\n\tself.enabled.Store(false)\n}","Signature":"func (self *SessionMap) Disable()","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}}},"SessionMap.Export":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Export","File":"session.go","Line":139,"StartOffset":3483,"EndOffset":3782,"Content":"// Export COPIES and exports underlying map\nfunc (self *SessionMap) Export() map[interface{}]interface{} {\n\tif self == nil {\n\t\treturn nil\n\t}\n\tm := make(map[interface{}]interface{}, len(self.storage))\n\tself.lock.RLock()\n\tfor k, v := range self.storage {\n\t\tm[k] = v\n\t}\n\tself.lock.RUnlock()\n\treturn m\n}","Signature":"func (self *SessionMap) Export() map[interface{}]interface{}","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}}},"SessionMap.Get":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Get","File":"session.go","Line":153,"StartOffset":3784,"EndOffset":3986,"Content":"// Get value for specific key\nfunc (self *SessionMap) Get(key interface{}) interface{} {\n\tif self == nil {\n\t\treturn nil\n\t}\n\tself.lock.RLock()\n\tval := self.storage[key]\n\tself.lock.RUnlock()\n\treturn val\n}","Signature":"func (self *SessionMap) Get(key interface{}) interface{}","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}}},"SessionMap.IsValid":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.IsValid","File":"session.go","Line":123,"StartOffset":3192,"EndOffset":3357,"Content":"// IsValid tells if the session is valid at present\nfunc (self *SessionMap) IsValid() bool {\n\tif self == nil {\n\t\treturn false\n\t}\n\treturn self.enabled.Load().(bool)\n}","Signature":"func (self *SessionMap) IsValid() bool","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}}},"SessionMap.WithValue":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.WithValue","File":"session.go","Line":164,"StartOffset":3988,"EndOffset":4215,"Content":"// Set value for specific key,and return itself\nfunc (self *SessionMap) WithValue(key, val interface{}) Session {\n\tif self == nil {\n\t\treturn nil\n\t}\n\tself.lock.Lock()\n\tself.storage[key] = val\n\tself.lock.Unlock()\n\treturn self\n}","Signature":"func (self *SessionMap) WithValue(key, val interface{}) Session","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}},"Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"session.go","Line":164,"StartOffset":4094,"EndOffset":4101}]},"UnbindSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","File":"gls.go","Line":129,"StartOffset":3459,"EndOffset":3866,"Content":"// UnbindSession unbind a session (if any) with current goroutine\n//\n// NOTICE: If you want to end the session,\n// please call `Disable()` (or whatever make the session invalid)\n// on your session's implementation\n//\n// NOTICE: MUST call `InitDefaultManager()` once before using this API\nfunc UnbindSession() {\n\tif defaultManagerObj == nil {\n\t\treturn\n\t}\n\tdefaultManagerObj.UnbindSession(SessionID(goID()))\n}","Signature":"func UnbindSession()","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"goID","File":"gls.go","Line":133,"StartOffset":3856,"EndOffset":3860}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.UnbindSession","File":"gls.go","Line":133,"StartOffset":3832,"EndOffset":3845}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"gls.go","Line":133,"StartOffset":3846,"EndOffset":3855}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","File":"gls.go","Line":130,"StartOffset":3774,"EndOffset":3791}]},"checkEnvOptions":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"checkEnvOptions","File":"gls.go","Line":77,"StartOffset":2279,"EndOffset":2906,"Content":"func checkEnvOptions(opts *ManagerOptions) {\n\tif env := os.Getenv(SESSION_CONFIG_KEY); env != \"\" {\n\t\tenvs := strings.Split(env, \",\")\n\t\t// parse first option as EnableTransparentTransmitAsync\n\t\tif strings.ToLower(envs[0]) == \"true\" {\n\t\t\topts.EnableImplicitlyTransmitAsync = true\n\t\t}\n\n\t\t// parse first option as ShardNumber\n\t\tif len(envs) \u003e 1 {\n\t\t\tif opt, err := strconv.Atoi(envs[1]); err == nil {\n\t\t\t\topts.ShardNumber = opt\n\t\t\t}\n\t\t}\n\n\t\t// parse third option as EnableTransparentTransmitAsync\n\t\tif len(envs) \u003e 2 {\n\t\t\tif d, err := time.ParseDuration(envs[2]); err == nil \u0026\u0026 d \u003e time.Second {\n\t\t\t\topts.GCInterval = d\n\t\t\t}\n\t\t}\n\t}\n}","Signature":"func checkEnvOptions(opts *ManagerOptions)","Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","File":"gls.go","Line":77,"StartOffset":2300,"EndOffset":2320}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SESSION_CONFIG_KEY","File":"gls.go","Line":78,"StartOffset":2345,"EndOffset":2363}]},"clearSessionID":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"clearSessionID","File":"stubs.go","Line":77,"StartOffset":1687,"EndOffset":1948,"Content":"func clearSessionID() {\n\tm := getPproLabel()\n\tif m == nil {\n\t\treturn\n\t}\n\tif _, ok := (*m)[Pprof_Label_Session_ID]; !ok {\n\t\treturn\n\t}\n\tn := make(labelMap, len(*m))\n\tfor k, v := range *m {\n\t\tif k != Pprof_Label_Session_ID {\n\t\t\tn[k] = v\n\t\t}\n\t}\n\tsetPprofLabel(\u0026n)\n}","Signature":"func clearSessionID()","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getPproLabel","File":"stubs.go","Line":78,"StartOffset":1717,"EndOffset":1729},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"setPprofLabel","File":"stubs.go","Line":91,"StartOffset":1929,"EndOffset":1942}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"labelMap","File":"stubs.go","Line":85,"StartOffset":1831,"EndOffset":1839}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Pprof_Label_Session_ID","File":"stubs.go","Line":82,"StartOffset":1777,"EndOffset":1799}]},"getPproLabel":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getPproLabel","File":"stubs.go","Line":38,"StartOffset":931,"EndOffset":1022,"Content":"//go:linkname getPproLabel runtime/pprof.runtime_getProfLabel\nfunc getPproLabel() *labelMap","Signature":"func getPproLabel() *labelMap","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"labelMap","File":"stubs.go","Line":38,"StartOffset":1013,"EndOffset":1022}]},"getSessionID":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getSessionID","File":"stubs.go","Line":61,"StartOffset":1396,"EndOffset":1685,"Content":"func getSessionID() (SessionID, bool) {\n\tm := getPproLabel()\n\tif m == nil {\n\t\treturn 0, false\n\t}\n\tif v, ok := (*m)[Pprof_Label_Session_ID]; !ok {\n\t\treturn 0, false\n\t} else {\n\t\tid, err := strconv.ParseInt(v, 10, 64)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\t\treturn SessionID(id), true\n\t}\n}","Signature":"func getSessionID() (SessionID, bool)","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"stubs.go","Line":61,"StartOffset":1417,"EndOffset":1426}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getPproLabel","File":"stubs.go","Line":62,"StartOffset":1442,"EndOffset":1454}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"stubs.go","Line":73,"StartOffset":1661,"EndOffset":1670}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Pprof_Label_Session_ID","File":"stubs.go","Line":66,"StartOffset":1511,"EndOffset":1533}]},"goID":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"goID","File":"stubs.go","Line":24,"StartOffset":681,"EndOffset":800,"Content":"//go:nocheckptr\nfunc goID() uint64 {\n\tgid, err := runtimex.GID()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn uint64(gid)\n}","Signature":"func goID() uint64","FunctionCalls":[{"ModPath":"github.com/cloudwego/runtimex@v0.1.1","PkgPath":"github.com/cloudwego/runtimex","Name":"GID","File":"stubs.go","Line":25,"StartOffset":740,"EndOffset":743}]},"newShard":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"newShard","File":"manager.go","Line":55,"StartOffset":1523,"EndOffset":1634,"Content":"func newShard() *shard {\n\tret := new(shard)\n\tret.m = make(map[SessionID]Session, defaultShardCap)\n\treturn ret\n}","Signature":"func newShard() *shard","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard","File":"manager.go","Line":55,"StartOffset":1539,"EndOffset":1545}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard","File":"manager.go","Line":56,"StartOffset":1560,"EndOffset":1565},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"manager.go","Line":57,"StartOffset":1585,"EndOffset":1594},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"manager.go","Line":57,"StartOffset":1595,"EndOffset":1602}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultShardCap","File":"manager.go","Line":57,"StartOffset":1604,"EndOffset":1619}]},"setPprofLabel":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"setPprofLabel","File":"stubs.go","Line":35,"StartOffset":835,"EndOffset":929,"Content":"//go:linkname setPprofLabel runtime/pprof.runtime_setProfLabel\nfunc setPprofLabel(m *labelMap)","Signature":"func setPprofLabel(m *labelMap)","Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"labelMap","File":"stubs.go","Line":35,"StartOffset":917,"EndOffset":928}]},"shard.Delete":{"Exported":false,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Delete","File":"manager.go","Line":107,"StartOffset":2677,"EndOffset":2766,"Content":"func (s *shard) Delete(id SessionID) {\n\ts.lock.Lock()\n\tdelete(s.m, id)\n\ts.lock.Unlock()\n}","Signature":"func (s *shard) Delete(id SessionID)","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}},"Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"manager.go","Line":107,"StartOffset":2700,"EndOffset":2712}]},"shard.Load":{"Exported":false,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Load","File":"manager.go","Line":90,"StartOffset":2319,"EndOffset":2576,"Content":"func (s *shard) Load(id SessionID) (Session, bool) {\n\ts.lock.RLock()\n\n\t// p := atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(\u0026s.m)))\n\t// m := *(*map[SessionID]Session)(unsafe.Pointer(p))\n\n\tsession, ok := s.m[id]\n\ts.lock.RUnlock()\n\treturn session, ok\n}","Signature":"func (s *shard) Load(id SessionID) (Session, bool)","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}},"Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"manager.go","Line":90,"StartOffset":2340,"EndOffset":2352}],"Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"manager.go","Line":90,"StartOffset":2355,"EndOffset":2362}]},"shard.Store":{"Exported":false,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Store","File":"manager.go","Line":101,"StartOffset":2578,"EndOffset":2675,"Content":"func (s *shard) Store(id SessionID, se Session) {\n\ts.lock.Lock()\n\ts.m[id] = se\n\ts.lock.Unlock()\n}","Signature":"func (s *shard) Store(id SessionID, se Session)","Receiver":{"IsPointer":true,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}},"Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"manager.go","Line":101,"StartOffset":2600,"EndOffset":2612},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"manager.go","Line":101,"StartOffset":2614,"EndOffset":2624}]},"transmitSessionID":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"transmitSessionID","File":"stubs.go","Line":42,"StartOffset":1072,"EndOffset":1394,"Content":"func transmitSessionID(id SessionID) {\n\tm := getPproLabel()\n\n\tvar n labelMap\n\tif m == nil {\n\t\tn = make(labelMap)\n\t} else {\n\t\tn = make(labelMap, len(*m))\n\t\tfor k, v := range *m {\n\t\t\tif k != Pprof_Label_Session_ID {\n\t\t\t\tn[k] = v\n\t\t\t}\n\t\t}\n\t}\n\n\tn[Pprof_Label_Session_ID] = strconv.FormatInt(int64(id), 10)\n\tsetPprofLabel(\u0026n)\n}","Signature":"func transmitSessionID(id SessionID)","Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"stubs.go","Line":42,"StartOffset":1095,"EndOffset":1107}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getPproLabel","File":"stubs.go","Line":43,"StartOffset":1117,"EndOffset":1129},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"setPprofLabel","File":"stubs.go","Line":58,"StartOffset":1375,"EndOffset":1388}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"labelMap","File":"stubs.go","Line":45,"StartOffset":1140,"EndOffset":1148}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Pprof_Label_Session_ID","File":"stubs.go","Line":51,"StartOffset":1261,"EndOffset":1283}]}},"Types":{"ManagerOptions":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","File":"manager.go","Line":24,"StartOffset":697,"EndOffset":1270,"Content":"// ManagerOptions for SessionManager\ntype ManagerOptions struct {\n\t// EnableImplicitlyTransmitAsync enables transparently transmit\n\t// current session to children goroutines\n\t//\n\t// WARNING: Once this option enables, if you want to use `pprof.Do()`, it must be called before `BindSession()`,\n\t// otherwise transmitting will be disfunctional\n\tEnableImplicitlyTransmitAsync bool\n\n\t// ShardNumber is used to shard session id, it must be larger than zero\n\tShardNumber int\n\n\t// GCInterval decides the GC interval for SessionManager,\n\t// it must be larger than 1s or zero means disable GC\n\tGCInterval time.Duration\n}"},"Session":{"Exported":true,"TypeKind":"interface","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"session.go","Line":25,"StartOffset":725,"EndOffset":1027,"Content":"// Session represents a local storage for one session\ntype Session interface {\n\t// IsValid tells if the session is valid at present\n\tIsValid() bool\n\n\t// Get returns value for specific key\n\tGet(key interface{}) interface{}\n\n\t// WithValue sets value for specific key,and return newly effective session\n\tWithValue(key interface{}, val interface{}) Session\n}","Methods":{"Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get"},"IsValid":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid"},"WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue"}}},"SessionCtx":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","File":"session.go","Line":38,"StartOffset":1149,"EndOffset":1223,"Content":"// SessionCtx implements Session with context,\n// which means children session WON'T affect parent and sibling sessions\ntype SessionCtx struct {\n\tenabled *atomic.Value\n\tstorage context.Context\n}","Methods":{"Disable":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Disable"},"Export":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Export"},"Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Get"},"IsValid":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.IsValid"},"WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.WithValue"}},"Implements":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"}]},"SessionID":{"Exported":true,"TypeKind":"typedef","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","File":"manager.go","Line":88,"StartOffset":2296,"EndOffset":2317,"Content":"// SessionID is the identity of a session\ntype SessionID uint64"},"SessionManager":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager","File":"manager.go","Line":46,"StartOffset":1389,"EndOffset":1495,"Content":"// SessionManager maintain and manage sessions\ntype SessionManager struct {\n\tshards []*shard\n\tinGC uint32\n\ttik *time.Ticker\n\topts ManagerOptions\n}","SubStruct":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","File":"manager.go","Line":50,"StartOffset":1479,"EndOffset":1493}],"Methods":{"BindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.BindSession"},"Close":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Close"},"GC":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GC"},"GetSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GetSession"},"Options":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Options"},"UnbindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.UnbindSession"},"startGC":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.startGC"}}},"SessionMap":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap","File":"session.go","Line":95,"StartOffset":2566,"EndOffset":2674,"Content":"// NewSessionMap implements Session with map,\n// which means children session WILL affect parent session and sibling sessions\ntype SessionMap struct {\n\tenabled *atomic.Value\n\tstorage map[interface{}]interface{}\n\tlock sync.RWMutex\n}","Methods":{"Disable":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Disable"},"Export":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Export"},"Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Get"},"IsValid":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.IsValid"},"WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.WithValue"}},"Implements":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"}]},"labelMap":{"Exported":false,"TypeKind":"typedef","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"labelMap","File":"stubs.go","Line":32,"StartOffset":802,"EndOffset":833,"Content":"type labelMap map[string]string"},"shard":{"Exported":false,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard","File":"manager.go","Line":40,"StartOffset":1272,"EndOffset":1340,"Content":"type shard struct {\n\tlock sync.RWMutex\n\tm map[SessionID]Session\n}","SubStruct":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","File":"manager.go","Line":42,"StartOffset":1317,"EndOffset":1338}],"Methods":{"Delete":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Delete"},"Load":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Load"},"Store":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Store"}}}},"Vars":{"Pprof_Label_Session_ID":{"IsExported":true,"IsConst":true,"IsPointer":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Pprof_Label_Session_ID","File":"stubs.go","Line":40,"StartOffset":1030,"EndOffset":1070,"Type":{"ModPath":"","PkgPath":"","Name":"untyped string"},"Content":"const Pprof_Label_Session_ID untyped string = \"go_session_id\""},"SESSION_CONFIG_KEY":{"IsExported":true,"IsConst":true,"IsPointer":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SESSION_CONFIG_KEY","File":"gls.go","Line":34,"StartOffset":1142,"EndOffset":1193,"Type":{"ModPath":"","PkgPath":"","Name":"untyped string"},"Content":"// SESSION_CONFIG_KEY is the env key for configuring default session manager.\n//\n//\tValue format: [EnableImplicitlyTransmitAsync][,ShardNumber][,GCInterval]\n//\t- EnableImplicitlyTransmitAsync: 'true' means enabled, otherwist means disabled\n//\t- ShardNumber: integer \u003e 0\n//\t- GCInterval: Golang time.Duration format, such as '10m' means ten minutes for each GC\n//\n// Once the key is set, default option values will be set if the option value doesn't exist.\nconst SESSION_CONFIG_KEY untyped string = \"CLOUDWEGO_SESSION_CONFIG_KEY\""},"defaultManagerObj":{"IsExported":false,"IsConst":false,"IsPointer":true,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","File":"gls.go","Line":37,"StartOffset":1202,"EndOffset":1236,"Type":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"},"Content":"var defaultManagerObj *SessionManager"},"defaultManagerOnce":{"IsExported":false,"IsConst":false,"IsPointer":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerOnce","File":"gls.go","Line":38,"StartOffset":1238,"EndOffset":1266,"Type":{"ModPath":"","PkgPath":"sync","Name":"Once"},"Content":"var defaultManagerOnce sync.Once"},"defaultShardCap":{"IsExported":false,"IsConst":false,"IsPointer":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultShardCap","File":"manager.go","Line":53,"StartOffset":1501,"EndOffset":1521,"Type":{"ModPath":"","PkgPath":"","Name":"int"},"Content":"var defaultShardCap int = 10"}}},"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]":{"IsMain":false,"IsTest":true,"PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Functions":{"ASSERT":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ASSERT","File":"example_test.go","Line":24,"StartOffset":673,"EndOffset":729,"Content":"func ASSERT(v bool) {\n\tif !v {\n\t\tpanic(\"not true!\")\n\t}\n}","Signature":"func ASSERT(v bool)"},"BenchmarkGLS_Get":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Get","File":"api_test.go","Line":548,"StartOffset":12073,"EndOffset":12559,"Content":"func BenchmarkGLS_Get(b *testing.B) {\n\ts := NewSessionCtx(context.Background())\n\tvar ss Session = s\n\tfor i := 0; i \u003c N; i++ {\n\t\tss = ss.WithValue(i, i)\n\t}\n\n\tb.Run(\"sync\", func(b *testing.B) {\n\t\tBindSession(ss)\n\t\tfor i := 0; i \u003c b.N; i++ {\n\t\t\t_ = mustCurSession().Get(N / 2)\n\t\t}\n\t\tUnbindSession()\n\t})\n\n\tb.Run(\"parallel\", func(b *testing.B) {\n\t\tb.RunParallel(func(p *testing.PB) {\n\t\t\tBindSession(ss)\n\t\t\tfor p.Next() {\n\t\t\t\t_ = mustCurSession().Get(N / 2)\n\t\t\t}\n\t\t\tUnbindSession()\n\t\t})\n\t})\n}","Signature":"func BenchmarkGLS_Get(b *testing.B)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"api_test.go","Line":549,"StartOffset":12117,"EndOffset":12130},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"api_test.go","Line":556,"StartOffset":12267,"EndOffset":12278},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","File":"api_test.go","Line":558,"StartOffset":12319,"EndOffset":12333},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","File":"api_test.go","Line":560,"StartOffset":12353,"EndOffset":12366}],"MethodCalls":[{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","File":"api_test.go","Line":558,"StartOffset":12336,"EndOffset":12339}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","File":"api_test.go","Line":550,"StartOffset":12161,"EndOffset":12168}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","File":"api_test.go","Line":551,"StartOffset":12190,"EndOffset":12191}]},"BenchmarkGLS_Set":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Set","File":"api_test.go","Line":574,"StartOffset":12561,"EndOffset":13082,"Content":"func BenchmarkGLS_Set(b *testing.B) {\n\ts := NewSessionCtx(context.Background())\n\tvar ss Session = s\n\n\tfor i := 0; i \u003c N; i++ {\n\t\tss = ss.WithValue(i, i)\n\t}\n\n\tb.Run(\"sync\", func(b *testing.B) {\n\t\tBindSession(ss)\n\t\tfor i := 0; i \u003c b.N; i++ {\n\t\t\tBindSession(mustCurSession().WithValue(N/2, -1))\n\t\t}\n\t\tUnbindSession()\n\t})\n\n\tb.Run(\"parallel\", func(b *testing.B) {\n\t\tb.RunParallel(func(p *testing.PB) {\n\t\t\tBindSession(ss)\n\t\t\tfor p.Next() {\n\t\t\t\tBindSession(mustCurSession().WithValue(N/2, -1))\n\t\t\t}\n\t\t\tUnbindSession()\n\t\t})\n\t})\n}","Signature":"func BenchmarkGLS_Set(b *testing.B)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"api_test.go","Line":575,"StartOffset":12605,"EndOffset":12618},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"api_test.go","Line":583,"StartOffset":12756,"EndOffset":12767},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","File":"api_test.go","Line":585,"StartOffset":12816,"EndOffset":12830},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","File":"api_test.go","Line":587,"StartOffset":12859,"EndOffset":12872}],"MethodCalls":[{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","File":"api_test.go","Line":585,"StartOffset":12833,"EndOffset":12842}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","File":"api_test.go","Line":576,"StartOffset":12649,"EndOffset":12656}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","File":"api_test.go","Line":578,"StartOffset":12679,"EndOffset":12680}]},"BenchmarkLoops":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkLoops","File":"api_test.go","Line":630,"StartOffset":13770,"EndOffset":13883,"Content":"func BenchmarkLoops(b *testing.B) {\n\tfor i := 0; i \u003c b.N; i++ {\n\t\tfor b := 0; b \u003c 100000; b++ {\n\t\t\t_ = b\n\t\t}\n\t}\n}","Signature":"func BenchmarkLoops(b *testing.B)"},"BenchmarkSessionCtx_Get":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionCtx_Get","File":"api_test.go","Line":482,"StartOffset":10854,"EndOffset":11245,"Content":"func BenchmarkSessionCtx_Get(b *testing.B) {\n\ts := NewSessionCtx(context.Background())\n\tvar ss Session = s\n\tfor i := 0; i \u003c N; i++ {\n\t\tss = ss.WithValue(i, i)\n\t}\n\n\tb.Run(\"sync\", func(b *testing.B) {\n\t\tfor i := 0; i \u003c b.N; i++ {\n\t\t\t_ = ss.Get(N / 2)\n\t\t}\n\t})\n\n\tb.Run(\"parallel\", func(b *testing.B) {\n\t\tb.RunParallel(func(p *testing.PB) {\n\t\t\tfor p.Next() {\n\t\t\t\t_ = ss.Get(N / 2)\n\t\t\t}\n\t\t})\n\t})\n}","Signature":"func BenchmarkSessionCtx_Get(b *testing.B)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"api_test.go","Line":483,"StartOffset":10905,"EndOffset":10918}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","File":"api_test.go","Line":484,"StartOffset":10949,"EndOffset":10956}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","File":"api_test.go","Line":485,"StartOffset":10978,"EndOffset":10979}]},"BenchmarkSessionCtx_WithValue":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionCtx_WithValue","File":"api_test.go","Line":460,"StartOffset":10439,"EndOffset":10852,"Content":"func BenchmarkSessionCtx_WithValue(b *testing.B) {\n\ts := NewSessionCtx(context.Background())\n\tvar ss Session = s\n\tfor i := 0; i \u003c N; i++ {\n\t\tss = ss.WithValue(i, i)\n\t}\n\n\tb.Run(\"sync\", func(b *testing.B) {\n\t\tfor i := 0; i \u003c b.N; i++ {\n\t\t\t_ = ss.WithValue(N/2, -1)\n\t\t}\n\t})\n\n\tb.Run(\"parallel\", func(b *testing.B) {\n\t\tb.RunParallel(func(p *testing.PB) {\n\t\t\tfor p.Next() {\n\t\t\t\t_ = ss.WithValue(N/2, -1)\n\t\t\t}\n\t\t})\n\t})\n}","Signature":"func BenchmarkSessionCtx_WithValue(b *testing.B)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"api_test.go","Line":461,"StartOffset":10496,"EndOffset":10509}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","File":"api_test.go","Line":462,"StartOffset":10540,"EndOffset":10547}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","File":"api_test.go","Line":463,"StartOffset":10569,"EndOffset":10570}]},"BenchmarkSessionManager_BindSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionManager_BindSession","File":"api_test.go","Line":442,"StartOffset":10115,"EndOffset":10437,"Content":"func BenchmarkSessionManager_BindSession(b *testing.B) {\n\ts := NewSessionCtx(context.Background())\n\n\tb.Run(\"sync\", func(b *testing.B) {\n\t\tfor i := 0; i \u003c b.N; i++ {\n\t\t\tBindSession(s)\n\t\t}\n\t})\n\n\tb.Run(\"parallel\", func(b *testing.B) {\n\t\tb.RunParallel(func(p *testing.PB) {\n\t\t\tfor p.Next() {\n\t\t\t\tBindSession(s)\n\t\t\t}\n\t\t})\n\t})\n}","Signature":"func BenchmarkSessionManager_BindSession(b *testing.B)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"api_test.go","Line":443,"StartOffset":10178,"EndOffset":10191},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"api_test.go","Line":447,"StartOffset":10283,"EndOffset":10294}]},"BenchmarkSessionManager_CurSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionManager_CurSession","File":"api_test.go","Line":420,"StartOffset":9708,"EndOffset":10113,"Content":"func BenchmarkSessionManager_CurSession(b *testing.B) {\n\ts := NewSessionCtx(context.Background())\n\n\tb.Run(\"sync\", func(b *testing.B) {\n\t\tBindSession(s)\n\t\tfor i := 0; i \u003c b.N; i++ {\n\t\t\t_ = mustCurSession()\n\t\t}\n\t\tUnbindSession()\n\t})\n\n\tb.Run(\"parallel\", func(b *testing.B) {\n\t\tb.RunParallel(func(p *testing.PB) {\n\t\t\tBindSession(s)\n\t\t\tfor p.Next() {\n\t\t\t\t_ = mustCurSession()\n\t\t\t}\n\t\t\tUnbindSession()\n\t\t})\n\t})\n}","Signature":"func BenchmarkSessionManager_CurSession(b *testing.B)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"api_test.go","Line":421,"StartOffset":9770,"EndOffset":9783},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"api_test.go","Line":424,"StartOffset":9845,"EndOffset":9856},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","File":"api_test.go","Line":426,"StartOffset":9896,"EndOffset":9910},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","File":"api_test.go","Line":428,"StartOffset":9919,"EndOffset":9932}]},"BenchmarkSessionMap_Get":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionMap_Get","File":"api_test.go","Line":526,"StartOffset":11671,"EndOffset":12071,"Content":"func BenchmarkSessionMap_Get(b *testing.B) {\n\ts := NewSessionMap(map[interface{}]interface{}{})\n\tvar ss Session = s\n\tfor i := 0; i \u003c N; i++ {\n\t\tss = ss.WithValue(i, i)\n\t}\n\n\tb.Run(\"sync\", func(b *testing.B) {\n\t\tfor i := 0; i \u003c b.N; i++ {\n\t\t\t_ = ss.Get(N / 2)\n\t\t}\n\t})\n\n\tb.Run(\"parallel\", func(b *testing.B) {\n\t\tb.RunParallel(func(p *testing.PB) {\n\t\t\tfor p.Next() {\n\t\t\t\t_ = ss.Get(N / 2)\n\t\t\t}\n\t\t})\n\t})\n}","Signature":"func BenchmarkSessionMap_Get(b *testing.B)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","File":"api_test.go","Line":527,"StartOffset":11722,"EndOffset":11735}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","File":"api_test.go","Line":528,"StartOffset":11775,"EndOffset":11782}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","File":"api_test.go","Line":529,"StartOffset":11804,"EndOffset":11805}]},"BenchmarkSessionMap_WithValue":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionMap_WithValue","File":"api_test.go","Line":504,"StartOffset":11247,"EndOffset":11669,"Content":"func BenchmarkSessionMap_WithValue(b *testing.B) {\n\ts := NewSessionMap(map[interface{}]interface{}{})\n\tvar ss Session = s\n\tfor i := 0; i \u003c N; i++ {\n\t\tss = ss.WithValue(i, i)\n\t}\n\n\tb.Run(\"sync\", func(b *testing.B) {\n\t\tfor i := 0; i \u003c b.N; i++ {\n\t\t\t_ = ss.WithValue(N/2, -1)\n\t\t}\n\t})\n\n\tb.Run(\"parallel\", func(b *testing.B) {\n\t\tb.RunParallel(func(p *testing.PB) {\n\t\t\tfor p.Next() {\n\t\t\t\t_ = ss.WithValue(N/2, -1)\n\t\t\t}\n\t\t})\n\t})\n}","Signature":"func BenchmarkSessionMap_WithValue(b *testing.B)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","File":"api_test.go","Line":505,"StartOffset":11304,"EndOffset":11317}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","File":"api_test.go","Line":506,"StartOffset":11357,"EndOffset":11364}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","File":"api_test.go","Line":507,"StartOffset":11386,"EndOffset":11387}]},"BindSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"gls.go","Line":115,"StartOffset":3200,"EndOffset":3457,"Content":"// BindSession binds the session with current goroutine\n//\n// NOTICE: MUST call `InitDefaultManager()` once before using this API\nfunc BindSession(s Session) {\n\tif defaultManagerObj == nil {\n\t\treturn\n\t}\n\tdefaultManagerObj.BindSession(SessionID(goID()), s)\n}","Signature":"func BindSession(s Session)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","File":"gls.go","Line":119,"StartOffset":3444,"EndOffset":3448}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","File":"gls.go","Line":119,"StartOffset":3434,"EndOffset":3443}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","File":"gls.go","Line":116,"StartOffset":3364,"EndOffset":3381}]},"CurSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","File":"gls.go","Line":104,"StartOffset":2908,"EndOffset":3198,"Content":"// CurSession gets the session for current goroutine\n//\n// NOTICE: MUST call `InitDefaultManager()` once before using this API\nfunc CurSession() (Session, bool) {\n\tif defaultManagerObj == nil {\n\t\treturn nil, false\n\t}\n\ts, ok := defaultManagerObj.GetSession(SessionID(goID()))\n\treturn s, ok\n}","Signature":"func CurSession() (Session, bool)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","File":"gls.go","Line":108,"StartOffset":3174,"EndOffset":3178}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","File":"gls.go","Line":108,"StartOffset":3164,"EndOffset":3173}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","File":"gls.go","Line":105,"StartOffset":3075,"EndOffset":3092}]},"DefaultManagerOptions":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"DefaultManagerOptions","File":"gls.go","Line":42,"StartOffset":1270,"EndOffset":1546,"Content":"// DefaultManagerOptions returns default options for the default manager\nfunc DefaultManagerOptions() ManagerOptions {\n\treturn ManagerOptions{\n\t\tShardNumber: 100,\n\t\tGCInterval: time.Minute * 10,\n\t\tEnableImplicitlyTransmitAsync: false,\n\t}\n}","Signature":"func DefaultManagerOptions() ManagerOptions","Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","File":"gls.go","Line":43,"StartOffset":1397,"EndOffset":1411}]},"ExampleSessionCtx":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","File":"example_test.go","Line":85,"StartOffset":2059,"EndOffset":4355,"Content":"func ExampleSessionCtx() {\n\t// initialize default manager first\n\tInitDefaultManager(DefaultManagerOptions())\n\n\tvar ctx = context.Background()\n\tvar key, v = \"a\", \"b\"\n\tvar key2, v2 = \"c\", \"d\"\n\tvar sig = make(chan struct{})\n\tvar sig2 = make(chan struct{})\n\n\t// initialize new session with context\n\tvar session = NewSessionCtx(ctx) // implementation...\n\n\t// set specific key-value and update session\n\tstart := session.WithValue(key, v)\n\n\t// set current session\n\tBindSession(start)\n\n\t// pass to new goroutine...\n\tGo(func() {\n\t\t// read specific key under current session\n\t\tval := GetCurSession().Get(key) // val exists\n\t\tASSERT(val == v)\n\t\t// doSomething....\n\n\t\t// set specific key-value under current session\n\t\t// NOTICE: current session won't change here\n\t\tnext := GetCurSession().WithValue(key2, v2)\n\t\tval2 := GetCurSession().Get(key2) // val2 == nil\n\t\tASSERT(val2 == nil)\n\n\t\t// pass both parent session and new session to sub goroutine\n\t\tGoSession(next, func() {\n\t\t\t// read specific key under current session\n\t\t\tval := GetCurSession().Get(key) // val exists\n\t\t\tASSERT(val == v)\n\n\t\t\tval2 := GetCurSession().Get(key2) // val2 exists\n\t\t\tASSERT(val2 == v2)\n\t\t\t// doSomething....\n\n\t\t\tsig2 \u003c- struct{}{}\n\n\t\t\t\u003c-sig\n\t\t\tASSERT(GetCurSession().IsValid() == false) // current session is invalid\n\n\t\t\tprintln(\"g2 done\")\n\t\t\tsig2 \u003c- struct{}{}\n\t\t})\n\n\t\tGo(func() {\n\t\t\t// read specific key under current session\n\t\t\tval := GetCurSession().Get(key) // val exists\n\t\t\tASSERT(v == val)\n\n\t\t\tval2 := GetCurSession().Get(key2) // val2 == nil\n\t\t\tASSERT(val2 == nil)\n\t\t\t// doSomething....\n\n\t\t\tsig2 \u003c- struct{}{}\n\n\t\t\t\u003c-sig\n\t\t\tASSERT(GetCurSession().IsValid() == false) // current session is invalid\n\n\t\t\tprintln(\"g3 done\")\n\t\t\tsig2 \u003c- struct{}{}\n\t\t})\n\n\t\tBindSession(next)\n\t\tval2 = GetCurSession().Get(key2) // val2 exists\n\t\tASSERT(v2 == val2)\n\n\t\tsig2 \u003c- struct{}{}\n\n\t\t\u003c-sig\n\t\tASSERT(next.IsValid() == false) // next is invalid\n\n\t\tprintln(\"g1 done\")\n\t\tsig2 \u003c- struct{}{}\n\t})\n\n\t\u003c-sig2\n\t\u003c-sig2\n\t\u003c-sig2\n\n\tval2 := GetCurSession().Get(key2) // val2 == nil\n\tASSERT(val2 == nil)\n\n\t// initiatively ends the session,\n\t// then all the inherited session (including next) will be disabled\n\tsession.Disable()\n\tclose(sig)\n\n\tASSERT(start.IsValid() == false) // start is invalid\n\n\t\u003c-sig2\n\t\u003c-sig2\n\t\u003c-sig2\n\tprintln(\"g0 done\")\n\n\tUnbindSession()\n}","Signature":"func ExampleSessionCtx()","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","File":"example_test.go","Line":87,"StartOffset":2124,"EndOffset":2142},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"DefaultManagerOptions","File":"example_test.go","Line":87,"StartOffset":2143,"EndOffset":2164},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"example_test.go","Line":96,"StartOffset":2368,"EndOffset":2381},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"example_test.go","Line":102,"StartOffset":2517,"EndOffset":2528},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Go","File":"example_test.go","Line":105,"StartOffset":2567,"EndOffset":2569},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GetCurSession","File":"example_test.go","Line":107,"StartOffset":2633,"EndOffset":2646},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ASSERT","File":"example_test.go","Line":108,"StartOffset":2674,"EndOffset":2680},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","File":"example_test.go","Line":118,"StartOffset":2995,"EndOffset":3004},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","File":"example_test.go","Line":186,"StartOffset":4338,"EndOffset":4351}],"MethodCalls":[{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","File":"example_test.go","Line":107,"StartOffset":2649,"EndOffset":2652},{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","File":"example_test.go","Line":113,"StartOffset":2836,"EndOffset":2845},{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","File":"example_test.go","Line":130,"StartOffset":3291,"EndOffset":3298}]},"ExampleSessionCtx_EnableImplicitlyTransmitAsync":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx_EnableImplicitlyTransmitAsync","File":"example_test.go","Line":38,"StartOffset":849,"EndOffset":2057,"Content":"func ExampleSessionCtx_EnableImplicitlyTransmitAsync() {\n\t// EnableImplicitlyTransmitAsync must be true\n\tInitDefaultManager(ManagerOptions{\n\t\tShardNumber: 10,\n\t\tEnableImplicitlyTransmitAsync: true,\n\t\tGCInterval: time.Hour,\n\t})\n\n\t// WARNING: pprof.Do() must be called before BindSession(),\n\t// otherwise transparently transmitting session will be dysfunctional\n\tlabels := pprof.Labels(\"c\", \"d\")\n\tpprof.Do(context.Background(), labels, func(ctx context.Context) {})\n\n\ts := NewSessionMap(map[interface{}]interface{}{\n\t\t\"a\": \"b\",\n\t})\n\tBindSession(s)\n\n\t// WARNING: pprof.Do() must be called before BindSession(),\n\t// otherwise transparently transmitting session will be dysfunctional\n\t// labels := pprof.Labels(\"c\", \"d\")\n\t// pprof.Do(context.Background(), labels, func(ctx context.Context){})\n\n\twg := sync.WaitGroup{}\n\twg.Add(3)\n\tgo func() {\n\t\tdefer wg.Done()\n\t\tASSERT(\"b\" == mustCurSession().Get(\"a\"))\n\n\t\tgo func() {\n\t\t\tdefer wg.Done()\n\t\t\tASSERT(\"b\" == mustCurSession().Get(\"a\"))\n\t\t}()\n\n\t\tASSERT(\"b\" == mustCurSession().Get(\"a\"))\n\t\tUnbindSession()\n\t\tASSERT(nil == mustCurSession())\n\n\t\tgo func() {\n\t\t\tdefer wg.Done()\n\t\t\tASSERT(nil == mustCurSession())\n\t\t}()\n\n\t}()\n\twg.Wait()\n}","Signature":"func ExampleSessionCtx_EnableImplicitlyTransmitAsync()","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","File":"example_test.go","Line":40,"StartOffset":954,"EndOffset":972},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","File":"example_test.go","Line":51,"StartOffset":1357,"EndOffset":1370},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"example_test.go","Line":54,"StartOffset":1417,"EndOffset":1428},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ASSERT","File":"example_test.go","Line":65,"StartOffset":1743,"EndOffset":1749},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","File":"example_test.go","Line":65,"StartOffset":1757,"EndOffset":1771},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","File":"example_test.go","Line":73,"StartOffset":1914,"EndOffset":1927}],"MethodCalls":[{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","File":"example_test.go","Line":65,"StartOffset":1774,"EndOffset":1777}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","File":"example_test.go","Line":40,"StartOffset":973,"EndOffset":987}]},"GetCurSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GetCurSession","File":"example_test.go","Line":30,"StartOffset":731,"EndOffset":847,"Content":"func GetCurSession() Session {\n\ts, ok := CurSession()\n\tif !ok {\n\t\tpanic(\"can't get current session!\")\n\t}\n\treturn s\n}","Signature":"func GetCurSession() Session","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","File":"example_test.go","Line":31,"StartOffset":772,"EndOffset":782}]},"GetDefaultManager":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GetDefaultManager","File":"gls.go","Line":51,"StartOffset":1548,"EndOffset":1667,"Content":"// GetDefaultManager returns the default manager\nfunc GetDefaultManager() *SessionManager {\n\treturn defaultManagerObj\n}","Signature":"func GetDefaultManager() *SessionManager","GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","File":"gls.go","Line":52,"StartOffset":1648,"EndOffset":1665}]},"Go":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Go","File":"gls.go","Line":137,"StartOffset":3868,"EndOffset":4049,"Content":"// Go calls f asynchronously and pass caller's session to the new goroutine\nfunc Go(f func()) {\n\ts, ok := CurSession()\n\tif !ok {\n\t\tGoSession(nil, f)\n\t} else {\n\t\tGoSession(s, f)\n\t}\n}","Signature":"func Go(f func())","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","File":"gls.go","Line":138,"StartOffset":3974,"EndOffset":3984},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","File":"gls.go","Line":140,"StartOffset":3999,"EndOffset":4008}]},"GoSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","File":"gls.go","Line":147,"StartOffset":4051,"EndOffset":4361,"Content":"// SessionGo calls f asynchronously and pass s session to the new goroutine\nfunc GoSession(s Session, f func()) {\n\tgo func() {\n\t\tdefer func() {\n\t\t\tif v := recover(); v != nil {\n\t\t\t\tprintln(fmt.Sprintf(\"GoSession recover: %v\", v))\n\t\t\t}\n\t\t\tUnbindSession()\n\t\t}()\n\t\tif s != nil {\n\t\t\tBindSession(s)\n\t\t}\n\t\tf()\n\t}()\n}","Signature":"func GoSession(s Session, f func())","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","File":"gls.go","Line":153,"StartOffset":4289,"EndOffset":4302},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"gls.go","Line":156,"StartOffset":4330,"EndOffset":4341}]},"InitDefaultManager":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","File":"gls.go","Line":64,"StartOffset":1669,"EndOffset":2277,"Content":"// InitDefaultManager update and restart default manager.\n// It accept argument opts and env config both.\n//\n// NOTICE:\n// - It use env SESSION_CONFIG_KEY prior to argument opts;\n// - If both env and opts are empty, it won't reset manager;\n// - For concurrent safety, you can only successfully reset manager ONCE.\n//\n//go:nocheckptr\nfunc InitDefaultManager(opts ManagerOptions) {\n\tdefaultManagerOnce.Do(func() {\n\t\t// env config has high priority\n\t\tcheckEnvOptions(\u0026opts)\n\n\t\tif defaultManagerObj != nil {\n\t\t\tdefaultManagerObj.Close()\n\t\t}\n\t\tobj := NewSessionManager(opts)\n\t\tdefaultManagerObj = \u0026obj\n\t})\n}","Signature":"func InitDefaultManager(opts ManagerOptions)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"checkEnvOptions","File":"gls.go","Line":67,"StartOffset":2123,"EndOffset":2138},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","File":"gls.go","Line":72,"StartOffset":2221,"EndOffset":2238}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","File":"gls.go","Line":69,"StartOffset":2152,"EndOffset":2169}]},"NewSessionCtx":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"session.go","Line":44,"StartOffset":1225,"EndOffset":1436,"Content":"// NewSessionCtx creates and enables a SessionCtx\nfunc NewSessionCtx(ctx context.Context) SessionCtx {\n\tvar enabled atomic.Value\n\tenabled.Store(true)\n\treturn SessionCtx{\n\t\tenabled: \u0026enabled,\n\t\tstorage: ctx,\n\t}\n}","Signature":"func NewSessionCtx(ctx context.Context) SessionCtx","Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx","File":"session.go","Line":47,"StartOffset":1383,"EndOffset":1393}]},"NewSessionCtxWithTimeout":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtxWithTimeout","File":"session.go","Line":55,"StartOffset":1438,"EndOffset":1720,"Content":"// NewSessionCtx creates and enables a SessionCtx,\n// and disable the session after timeout\nfunc NewSessionCtxWithTimeout(ctx context.Context, timeout time.Duration) SessionCtx {\n\tret := NewSessionCtx(ctx)\n\tgo func() {\n\t\t\u003c-time.NewTimer(timeout).C\n\t\tret.Disable()\n\t}()\n\treturn ret\n}","Signature":"func NewSessionCtxWithTimeout(ctx context.Context, timeout time.Duration) SessionCtx","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"session.go","Line":56,"StartOffset":1625,"EndOffset":1638}]},"NewSessionManager":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","File":"manager.go","Line":63,"StartOffset":1636,"EndOffset":2138,"Content":"// NewSessionManager creates a SessionManager with default containers\n// If opts.GCInterval \u003e 0, it will start scheduled GC() loop automatically\nfunc NewSessionManager(opts ManagerOptions) SessionManager {\n\tif opts.ShardNumber \u003c= 0 {\n\t\tpanic(\"ShardNumber must be larger than zero\")\n\t}\n\tshards := make([]*shard, opts.ShardNumber)\n\tfor i := range shards {\n\t\tshards[i] = newShard()\n\t}\n\tret := SessionManager{\n\t\tshards: shards,\n\t\topts: opts,\n\t}\n\n\tif opts.GCInterval \u003e 0 {\n\t\tret.startGC()\n\t}\n\treturn ret\n}","Signature":"func NewSessionManager(opts ManagerOptions) SessionManager","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"newShard","File":"manager.go","Line":69,"StartOffset":2004,"EndOffset":2012}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard","File":"manager.go","Line":67,"StartOffset":1940,"EndOffset":1945},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager","File":"manager.go","Line":71,"StartOffset":2026,"EndOffset":2040}]},"NewSessionMap":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","File":"session.go","Line":102,"StartOffset":2676,"EndOffset":2897,"Content":"// NewSessionMap creates and enables a SessionMap\nfunc NewSessionMap(m map[interface{}]interface{}) *SessionMap {\n\tvar enabled atomic.Value\n\tenabled.Store(true)\n\treturn \u0026SessionMap{\n\t\tenabled: \u0026enabled,\n\t\tstorage: m,\n\t}\n}","Signature":"func NewSessionMap(m map[interface{}]interface{}) *SessionMap","Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap","File":"session.go","Line":105,"StartOffset":2846,"EndOffset":2856}]},"NewSessionMapWithTimeout":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMapWithTimeout","File":"session.go","Line":113,"StartOffset":2899,"EndOffset":3190,"Content":"// NewSessionCtx creates and enables a SessionCtx,\n// and disable the session after timeout\nfunc NewSessionMapWithTimeout(m map[interface{}]interface{}, timeout time.Duration) *SessionMap {\n\tret := NewSessionMap(m)\n\tgo func() {\n\t\t\u003c-time.NewTimer(timeout).C\n\t\tret.Disable()\n\t}()\n\treturn ret\n}","Signature":"func NewSessionMapWithTimeout(m map[interface{}]interface{}, timeout time.Duration) *SessionMap","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","File":"session.go","Line":114,"StartOffset":3097,"EndOffset":3110}]},"Session.Get":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":true,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session.Get","File":"session.go","Line":30,"StartOffset":821,"EndOffset":892,"Content":"// Get returns value for specific key\nGet(key interface{}) interface{}","Signature":"// Get returns value for specific key\nGet(key interface{}) interface{}"},"Session.IsValid":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":true,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session.IsValid","File":"session.go","Line":27,"StartOffset":751,"EndOffset":818,"Content":"// IsValid tells if the session is valid at present\nIsValid() bool","Signature":"// IsValid tells if the session is valid at present\nIsValid() bool"},"Session.WithValue":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":true,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session.WithValue","File":"session.go","Line":33,"StartOffset":895,"EndOffset":1025,"Content":"// WithValue sets value for specific key,and return newly effective session\nWithValue(key interface{}, val interface{}) Session","Signature":"// WithValue sets value for specific key,and return newly effective session\nWithValue(key interface{}, val interface{}) Session"},"SessionCtx.Disable":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.Disable","File":"session.go","Line":65,"StartOffset":1722,"EndOffset":1813,"Content":"// Disable ends the session\nfunc (self SessionCtx) Disable() {\n\tself.enabled.Store(false)\n}","Signature":"func (self SessionCtx) Disable()","Receiver":{"IsPointer":false,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}}},"SessionCtx.Export":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.Export","File":"session.go","Line":70,"StartOffset":1815,"EndOffset":1924,"Content":"// Export exports underlying context\nfunc (self SessionCtx) Export() context.Context {\n\treturn self.storage\n}","Signature":"func (self SessionCtx) Export() context.Context","Receiver":{"IsPointer":false,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}}},"SessionCtx.Get":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.Get","File":"session.go","Line":80,"StartOffset":2056,"EndOffset":2177,"Content":"// Get value for specific key\nfunc (self SessionCtx) Get(key interface{}) interface{} {\n\treturn self.storage.Value(key)\n}","Signature":"func (self SessionCtx) Get(key interface{}) interface{}","Receiver":{"IsPointer":false,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}}},"SessionCtx.IsValid":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.IsValid","File":"session.go","Line":75,"StartOffset":1926,"EndOffset":2054,"Content":"// IsValid tells if the session is valid at present\nfunc (self SessionCtx) IsValid() bool {\n\treturn self.enabled.Load().(bool)\n}","Signature":"func (self SessionCtx) IsValid() bool","Receiver":{"IsPointer":false,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}}},"SessionCtx.WithValue":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.WithValue","File":"session.go","Line":85,"StartOffset":2179,"EndOffset":2438,"Content":"// Set value for specific key,and return newly effective session\nfunc (self SessionCtx) WithValue(key interface{}, val interface{}) Session {\n\tctx := context.WithValue(self.storage, key, val)\n\treturn SessionCtx{\n\t\tenabled: self.enabled,\n\t\tstorage: ctx,\n\t}\n}","Signature":"func (self SessionCtx) WithValue(key interface{}, val interface{}) Session","Receiver":{"IsPointer":false,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}},"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx","File":"session.go","Line":87,"StartOffset":2381,"EndOffset":2391}]},"SessionManager.BindSession":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.BindSession","File":"manager.go","Line":134,"StartOffset":3290,"EndOffset":3573,"Content":"// BindSession binds the session with current goroutine\nfunc (self *SessionManager) BindSession(id SessionID, s Session) {\n\tshard := self.shards[uint64(id)%uint64(self.opts.ShardNumber)]\n\n\tshard.Store(id, s)\n\n\tif self.opts.EnableImplicitlyTransmitAsync {\n\t\ttransmitSessionID(id)\n\t}\n}","Signature":"func (self *SessionManager) BindSession(id SessionID, s Session)","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}},"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"transmitSessionID","File":"manager.go","Line":140,"StartOffset":3547,"EndOffset":3564}]},"SessionManager.Close":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.Close","File":"manager.go","Line":200,"StartOffset":4874,"EndOffset":5010,"Content":"// Close stop persistent work for the manager, like GC\nfunc (self SessionManager) Close() {\n\tif self.tik != nil {\n\t\tself.tik.Stop()\n\t}\n}","Signature":"func (self SessionManager) Close()","Receiver":{"IsPointer":false,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}}},"SessionManager.GC":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.GC","File":"manager.go","Line":163,"StartOffset":4014,"EndOffset":4549,"Content":"// GC sweep invalid sessions and release unused memory\nfunc (self SessionManager) GC() {\n\tif !atomic.CompareAndSwapUint32(\u0026self.inGC, 0, 1) {\n\t\treturn\n\t}\n\n\tfor _, shard := range self.shards {\n\t\tshard.lock.Lock()\n\t\tn := shard.m\n\t\tm := make(map[SessionID]Session, len(n))\n\t\tfor id, s := range n {\n\t\t\t// Warning: may panic here?\n\t\t\tif s.IsValid() {\n\t\t\t\tm[id] = s\n\t\t\t}\n\t\t}\n\t\t// atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(\u0026shard.m)), unsafe.Pointer(\u0026m))\n\t\tshard.m = m\n\t\tshard.lock.Unlock()\n\t}\n\n\tatomic.StoreUint32(\u0026self.inGC, 0)\n}","Signature":"func (self SessionManager) GC()","Receiver":{"IsPointer":false,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}},"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","File":"manager.go","Line":171,"StartOffset":4257,"EndOffset":4266},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","File":"manager.go","Line":171,"StartOffset":4267,"EndOffset":4274}]},"SessionManager.GetSession":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.GetSession","File":"manager.go","Line":115,"StartOffset":2768,"EndOffset":3288,"Content":"// Get gets specific session\n// or get inherited session if option EnableImplicitlyTransmitAsync is true\nfunc (self *SessionManager) GetSession(id SessionID) (Session, bool) {\n\tshard := self.shards[uint64(id)%uint64(self.opts.ShardNumber)]\n\tsession, ok := shard.Load(id)\n\tif ok {\n\t\treturn session, ok\n\t}\n\tif !self.opts.EnableImplicitlyTransmitAsync {\n\t\treturn nil, false\n\t}\n\n\tid, ok = getSessionID()\n\tif !ok {\n\t\treturn nil, false\n\t}\n\tshard = self.shards[uint64(id)%uint64(self.opts.ShardNumber)]\n\treturn shard.Load(id)\n}","Signature":"func (self *SessionManager) GetSession(id SessionID) (Session, bool)","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}},"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getSessionID","File":"manager.go","Line":125,"StartOffset":3153,"EndOffset":3165}]},"SessionManager.Options":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.Options","File":"manager.go","Line":83,"StartOffset":2140,"EndOffset":2252,"Content":"// Options shows the manager's Options\nfunc (self SessionManager) Options() ManagerOptions {\n\treturn self.opts\n}","Signature":"func (self SessionManager) Options() ManagerOptions","Receiver":{"IsPointer":false,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}}},"SessionManager.UnbindSession":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.UnbindSession","File":"manager.go","Line":149,"StartOffset":3575,"EndOffset":4012,"Content":"// UnbindSession clears current session\n//\n// Notice: If you want to end the session,\n// please call `Disable()` (or whatever make the session invalid)\n// on your session's implementation\nfunc (self *SessionManager) UnbindSession(id SessionID) {\n\tshard := self.shards[uint64(id)%uint64(self.opts.ShardNumber)]\n\n\t_, ok := shard.Load(id)\n\tif ok {\n\t\tshard.Delete(id)\n\t}\n\n\tif self.opts.EnableImplicitlyTransmitAsync {\n\t\tclearSessionID()\n\t}\n}","Signature":"func (self *SessionManager) UnbindSession(id SessionID)","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}},"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"clearSessionID","File":"manager.go","Line":158,"StartOffset":3991,"EndOffset":4005}]},"SessionManager.startGC":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.startGC","File":"manager.go","Line":187,"StartOffset":4551,"EndOffset":4872,"Content":"// startGC start a scheduled goroutine to call GC() according to GCInterval\nfunc (self *SessionManager) startGC() {\n\tif self.opts.GCInterval \u003c time.Second {\n\t\tpanic(\"GCInterval must be larger than 1 second\")\n\t}\n\tself.tik = time.NewTicker(self.opts.GCInterval)\n\tgo func() {\n\t\tfor range self.tik.C {\n\t\t\tself.GC()\n\t\t}\n\t}()\n}","Signature":"func (self *SessionManager) startGC()","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}}},"SessionMap.Disable":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.Disable","File":"session.go","Line":131,"StartOffset":3359,"EndOffset":3481,"Content":"// Disable ends the session\nfunc (self *SessionMap) Disable() {\n\tif self == nil {\n\t\treturn\n\t}\n\tself.enabled.Store(false)\n}","Signature":"func (self *SessionMap) Disable()","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}}},"SessionMap.Export":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.Export","File":"session.go","Line":139,"StartOffset":3483,"EndOffset":3782,"Content":"// Export COPIES and exports underlying map\nfunc (self *SessionMap) Export() map[interface{}]interface{} {\n\tif self == nil {\n\t\treturn nil\n\t}\n\tm := make(map[interface{}]interface{}, len(self.storage))\n\tself.lock.RLock()\n\tfor k, v := range self.storage {\n\t\tm[k] = v\n\t}\n\tself.lock.RUnlock()\n\treturn m\n}","Signature":"func (self *SessionMap) Export() map[interface{}]interface{}","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}}},"SessionMap.Get":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.Get","File":"session.go","Line":153,"StartOffset":3784,"EndOffset":3986,"Content":"// Get value for specific key\nfunc (self *SessionMap) Get(key interface{}) interface{} {\n\tif self == nil {\n\t\treturn nil\n\t}\n\tself.lock.RLock()\n\tval := self.storage[key]\n\tself.lock.RUnlock()\n\treturn val\n}","Signature":"func (self *SessionMap) Get(key interface{}) interface{}","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}}},"SessionMap.IsValid":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.IsValid","File":"session.go","Line":123,"StartOffset":3192,"EndOffset":3357,"Content":"// IsValid tells if the session is valid at present\nfunc (self *SessionMap) IsValid() bool {\n\tif self == nil {\n\t\treturn false\n\t}\n\treturn self.enabled.Load().(bool)\n}","Signature":"func (self *SessionMap) IsValid() bool","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}}},"SessionMap.WithValue":{"Exported":true,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.WithValue","File":"session.go","Line":164,"StartOffset":3988,"EndOffset":4215,"Content":"// Set value for specific key,and return itself\nfunc (self *SessionMap) WithValue(key, val interface{}) Session {\n\tif self == nil {\n\t\treturn nil\n\t}\n\tself.lock.Lock()\n\tself.storage[key] = val\n\tself.lock.Unlock()\n\treturn self\n}","Signature":"func (self *SessionMap) WithValue(key, val interface{}) Session","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}}},"TestMain":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestMain","File":"api_test.go","Line":32,"StartOffset":759,"EndOffset":844,"Content":"func TestMain(m *testing.M) {\n\tInitDefaultManager(DefaultManagerOptions())\n\tm.Run()\n}","Signature":"func TestMain(m *testing.M)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","File":"api_test.go","Line":33,"StartOffset":790,"EndOffset":808},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"DefaultManagerOptions","File":"api_test.go","Line":33,"StartOffset":809,"EndOffset":830}]},"TestRace":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRace","File":"api_test.go","Line":394,"StartOffset":9150,"EndOffset":9706,"Content":"func TestRace(t *testing.T) {\n\tmanager := NewSessionManager(ManagerOptions{\n\t\tShardNumber: 1,\n\t\tGCInterval: time.Second,\n\t})\n\tvar N = 1000\n\tvar start sync.RWMutex\n\tstart.Lock()\n\twg := sync.WaitGroup{}\n\tfor i := 0; i \u003c N; i++ {\n\t\twg.Add(1)\n\t\tgo func(i int) {\n\t\t\tdefer wg.Done()\n\t\t\ts := NewSessionMap(map[interface{}]interface{}{}).WithValue(\"a\", \"b\")\n\t\t\tstart.RLock()\n\t\t\tmanager.BindSession(SessionID(i), s)\n\t\t\tss, ok := manager.GetSession(SessionID(i))\n\t\t\tif !ok || ss.Get(\"a\") != \"b\" {\n\t\t\t\tt.Fatal(\"not equal\")\n\t\t\t}\n\t\t}(i)\n\t}\n\tstart.Unlock()\n\twg.Wait()\n}","Signature":"func TestRace(t *testing.T)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","File":"api_test.go","Line":395,"StartOffset":9192,"EndOffset":9209},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","File":"api_test.go","Line":407,"StartOffset":9436,"EndOffset":9449}],"MethodCalls":[{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.WithValue","File":"api_test.go","Line":407,"StartOffset":9481,"EndOffset":9490}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","File":"api_test.go","Line":395,"StartOffset":9210,"EndOffset":9224},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","File":"api_test.go","Line":409,"StartOffset":9541,"EndOffset":9550}]},"TestRealBizGLS":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRealBizGLS","File":"api_test.go","Line":666,"StartOffset":14381,"EndOffset":15078,"Content":"func TestRealBizGLS(t *testing.T) {\n\tvar runner = func(N int) {\n\t\tm := NewSessionManager(ManagerOptions{\n\t\t\tShardNumber: 100,\n\t\t\tGCInterval: time.Second,\n\t\t})\n\t\ts := \u0026stat{\n\t\t\tmin: time.Duration(math.MaxInt64),\n\t\t}\n\t\tctx, _ := context.WithTimeout(context.Background(), time.Second*60)\n\t\temitLoops(\u0026m, ctx, N, s)\n\t\tgo func(ctx context.Context) {\n\t\t\ttt := time.NewTicker(time.Second)\n\t\t\tfor {\n\t\t\t\tselect {\n\t\t\t\tcase \u003c-tt.C:\n\t\t\t\t\t{\n\t\t\t\t\t\tprintln(s.String())\n\t\t\t\t\t}\n\t\t\t\tcase \u003c-ctx.Done():\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t}\n\t\t}(ctx)\n\t\t\u003c-ctx.Done()\n\t}\n\n\tt.Run(\"10\", func(t *testing.T) {\n\t\trunner(10)\n\t})\n\tt.Run(\"100\", func(t *testing.T) {\n\t\trunner(100)\n\t})\n\tt.Run(\"1000\", func(t *testing.T) {\n\t\trunner(1000)\n\t})\n}","Signature":"func TestRealBizGLS(t *testing.T)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","File":"api_test.go","Line":668,"StartOffset":14452,"EndOffset":14469},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"emitLoops","File":"api_test.go","Line":676,"StartOffset":14669,"EndOffset":14678}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","File":"api_test.go","Line":668,"StartOffset":14470,"EndOffset":14484},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"stat","File":"api_test.go","Line":672,"StartOffset":14549,"EndOffset":14553}]},"TestResetDefaultManager":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestResetDefaultManager","File":"api_test.go","Line":37,"StartOffset":846,"EndOffset":2463,"Content":"func TestResetDefaultManager(t *testing.T) {\n\told := defaultManagerObj\n\n\tt.Run(\"arg\", func(t *testing.T) {\n\t\tdefaultManagerOnce = sync.Once{}\n\t\texp := ManagerOptions{\n\t\t\tShardNumber: 1,\n\t\t\tEnableImplicitlyTransmitAsync: true,\n\t\t\tGCInterval: time.Second * 2,\n\t\t}\n\t\tInitDefaultManager(exp)\n\t\tact := defaultManagerObj.Options()\n\t\trequire.Equal(t, exp, act)\n\t})\n\n\tt.Run(\"arg\", func(t *testing.T) {\n\t\tdefaultManagerOnce = sync.Once{}\n\t\tenv := `true,10,10s`\n\t\tos.Setenv(SESSION_CONFIG_KEY, env)\n\t\texp := DefaultManagerOptions()\n\t\tInitDefaultManager(exp)\n\t\tact := defaultManagerObj.Options()\n\t\texp.ShardNumber = 10\n\t\texp.EnableImplicitlyTransmitAsync = true\n\t\texp.GCInterval = time.Second * 10\n\t\trequire.Equal(t, exp, act)\n\n\t\tdefaultManagerOnce = sync.Once{}\n\t\tenv = `,1000`\n\t\tos.Setenv(SESSION_CONFIG_KEY, env)\n\t\texp = DefaultManagerOptions()\n\t\tInitDefaultManager(exp)\n\t\tact = defaultManagerObj.Options()\n\t\texp.ShardNumber = 1000\n\t\trequire.Equal(t, exp, act)\n\n\t\tdefaultManagerOnce = sync.Once{}\n\t\tenv = `,1,2s`\n\t\tos.Setenv(SESSION_CONFIG_KEY, env)\n\t\texp = DefaultManagerOptions()\n\t\tInitDefaultManager(exp)\n\t\tact = defaultManagerObj.Options()\n\t\texp.ShardNumber = 1\n\t\texp.GCInterval = time.Second * 2\n\t\trequire.Equal(t, exp, act)\n\n\t\tdefaultManagerOnce = sync.Once{}\n\t\tenv = `true,,2s`\n\t\tos.Setenv(SESSION_CONFIG_KEY, env)\n\t\texp = DefaultManagerOptions()\n\t\tInitDefaultManager(exp)\n\t\tact = defaultManagerObj.Options()\n\t\texp.EnableImplicitlyTransmitAsync = true\n\t\texp.GCInterval = time.Second * 2\n\t\trequire.Equal(t, exp, act)\n\t})\n\n\tdefaultManagerObj = old\n\tdefaultManagerOnce = sync.Once{}\n}","Signature":"func TestResetDefaultManager(t *testing.T)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","File":"api_test.go","Line":47,"StartOffset":1147,"EndOffset":1165},{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","File":"api_test.go","Line":49,"StartOffset":1218,"EndOffset":1223},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"DefaultManagerOptions","File":"api_test.go","Line":56,"StartOffset":1381,"EndOffset":1402}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","File":"api_test.go","Line":42,"StartOffset":997,"EndOffset":1011}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","File":"api_test.go","Line":38,"StartOffset":899,"EndOffset":916},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerOnce","File":"api_test.go","Line":41,"StartOffset":955,"EndOffset":973},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SESSION_CONFIG_KEY","File":"api_test.go","Line":55,"StartOffset":1347,"EndOffset":1365}]},"TestSessionCtx":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","File":"api_test.go","Line":154,"StartOffset":3840,"EndOffset":6120,"Content":"func TestSessionCtx(t *testing.T) {\n\tvar ctx = context.Background()\n\tvar key, v = \"a\", \"b\"\n\tvar key2, v2 = \"c\", \"d\"\n\tvar sig = make(chan struct{})\n\tvar sig2 = make(chan struct{})\n\n\t// initialize new session with context\n\tvar session = NewSessionCtx(ctx) // implementation...\n\n\t// set specific key-value and update session\n\tstart := session.WithValue(key, v)\n\n\t// set current session\n\tBindSession(start)\n\n\t// pass to new goroutine...\n\tGo(func() {\n\t\t// read specific key under current session\n\t\tval := mustCurSession().Get(key) // val exists\n\t\trequire.Equal(t, v, val)\n\t\t// doSomething....\n\n\t\t// set specific key-value under current session\n\t\t// NOTICE: current session won't change here\n\t\tnext := mustCurSession().WithValue(key2, v2)\n\t\tval2 := mustCurSession().Get(key2) // val2 == nil\n\t\trequire.Nil(t, val2)\n\n\t\t// pass both parent session and new session to sub goroutine\n\t\tGoSession(next, func() {\n\t\t\t// read specific key under current session\n\t\t\tval := mustCurSession().Get(key) // val exists\n\t\t\trequire.Equal(t, v, val)\n\n\t\t\tval2 := mustCurSession().Get(key2) // val2 exists\n\t\t\trequire.Equal(t, v2, val2)\n\t\t\t// doSomething....\n\n\t\t\tsig2 \u003c- struct{}{}\n\n\t\t\t\u003c-sig\n\t\t\trequire.False(t, mustCurSession().IsValid()) // current session is invalid\n\n\t\t\tprintln(\"g2 done\")\n\t\t\tsig2 \u003c- struct{}{}\n\t\t})\n\n\t\tGo(func() {\n\t\t\t// read specific key under current session\n\t\t\tval := mustCurSession().Get(key) // val exists\n\t\t\trequire.Equal(t, v, val)\n\n\t\t\tval2 := mustCurSession().Get(key2) // val2 == nil\n\t\t\trequire.Nil(t, val2)\n\t\t\t// doSomething....\n\n\t\t\tsig2 \u003c- struct{}{}\n\n\t\t\t\u003c-sig\n\t\t\trequire.False(t, mustCurSession().IsValid()) // current session is invalid\n\n\t\t\tprintln(\"g3 done\")\n\t\t\tsig2 \u003c- struct{}{}\n\t\t})\n\n\t\tBindSession(next)\n\t\tval2 = mustCurSession().Get(key2) // val2 exists\n\t\trequire.Equal(t, v2, val2)\n\n\t\tsig2 \u003c- struct{}{}\n\n\t\t\u003c-sig\n\t\trequire.False(t, next.IsValid()) // next is invalid\n\n\t\tprintln(\"g1 done\")\n\t\tsig2 \u003c- struct{}{}\n\t})\n\n\t\u003c-sig2\n\t\u003c-sig2\n\t\u003c-sig2\n\n\tval2 := mustCurSession().Get(key2) // val2 == nil\n\trequire.Nil(t, val2)\n\n\t// initiatively ends the session,\n\t// then all the inherited session (including next) will be disabled\n\tsession.Disable()\n\tclose(sig)\n\n\trequire.False(t, start.IsValid()) // start is invalid\n\n\t\u003c-sig2\n\t\u003c-sig2\n\t\u003c-sig2\n\tprintln(\"g0 done\")\n\n\tUnbindSession()\n}","Signature":"func TestSessionCtx(t *testing.T)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"api_test.go","Line":162,"StartOffset":4075,"EndOffset":4088},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"api_test.go","Line":168,"StartOffset":4224,"EndOffset":4235},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Go","File":"api_test.go","Line":171,"StartOffset":4274,"EndOffset":4276},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","File":"api_test.go","Line":173,"StartOffset":4340,"EndOffset":4354},{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","File":"api_test.go","Line":174,"StartOffset":4390,"EndOffset":4395},{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Nil","File":"api_test.go","Line":181,"StartOffset":4635,"EndOffset":4638},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","File":"api_test.go","Line":184,"StartOffset":4714,"EndOffset":4723},{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"False","File":"api_test.go","Line":196,"StartOffset":5013,"EndOffset":5018},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","File":"api_test.go","Line":252,"StartOffset":6103,"EndOffset":6116}],"MethodCalls":[{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","File":"api_test.go","Line":173,"StartOffset":4357,"EndOffset":4360},{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","File":"api_test.go","Line":179,"StartOffset":4553,"EndOffset":4562},{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","File":"api_test.go","Line":196,"StartOffset":5039,"EndOffset":5046}]},"TestSessionManager_GC":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionManager_GC","File":"api_test.go","Line":360,"StartOffset":8481,"EndOffset":9148,"Content":"func TestSessionManager_GC(t *testing.T) {\n\tinter := time.Second * 2\n\tsd := 10\n\tmanager := NewSessionManager(ManagerOptions{\n\t\tShardNumber: sd,\n\t\tGCInterval: inter,\n\t})\n\n\tvar N = 1000\n\tfor i := 0; i \u003c N; i++ {\n\t\tm := map[interface{}]interface{}{}\n\t\ts := NewSessionMap(m)\n\t\tmanager.BindSession(SessionID(i), s)\n\t\tif i%2 == 1 {\n\t\t\ts.Disable()\n\t\t}\n\t}\n\tfor _, shard := range manager.shards {\n\t\tshard.lock.Lock()\n\t\tl := len(shard.m)\n\t\tshard.lock.Unlock()\n\t\trequire.Equal(t, N/sd, l)\n\t}\n\ttime.Sleep(inter + inter\u003e\u003e1)\n\tsum := 0\n\tfor _, shard := range manager.shards {\n\t\tshard.lock.Lock()\n\t\tl := len(shard.m)\n\t\tshard.lock.Unlock()\n\t\tsum += l\n\t}\n\trequire.Equal(t, N/2, sum)\n}","Signature":"func TestSessionManager_GC(t *testing.T)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","File":"api_test.go","Line":363,"StartOffset":8572,"EndOffset":8589},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","File":"api_test.go","Line":371,"StartOffset":8736,"EndOffset":8749},{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","File":"api_test.go","Line":381,"StartOffset":8942,"EndOffset":8947}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","File":"api_test.go","Line":363,"StartOffset":8590,"EndOffset":8604},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","File":"api_test.go","Line":372,"StartOffset":8775,"EndOffset":8784}]},"TestSessionMap":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","File":"api_test.go","Line":260,"StartOffset":6189,"EndOffset":8479,"Content":"func TestSessionMap(t *testing.T) {\n\tvar key, v = \"a\", \"b\"\n\tvar key2, v2 = \"c\", \"d\"\n\tvar sig = make(chan struct{})\n\tvar sig2 = make(chan struct{})\n\n\t// initialize new session with context\n\tvar session = NewSessionMap(map[interface{}]interface{}{}) // implementation...\n\n\t// set specific key-value and update session\n\tstart := session.WithValue(key, v)\n\n\t// set current session\n\tBindSession(start)\n\n\t// pass to new goroutine...\n\tGo(func() {\n\t\t// read specific key under current session\n\t\tval := mustCurSession().Get(key) // val exists\n\t\trequire.Equal(t, v, val)\n\t\t// doSomething....\n\n\t\t// set specific key-value under current session\n\t\t// NOTICE: current session won't change here\n\t\tnext := mustCurSession().WithValue(key2, v2)\n\t\tval2 := mustCurSession().Get(key2) // val2 exist\n\t\trequire.Equal(t, v2, val2)\n\n\t\t// pass both parent session and new session to sub goroutine\n\t\tGoSession(next, func() {\n\t\t\t// read specific key under current session\n\t\t\tval := mustCurSession().Get(key) // val exists\n\t\t\trequire.Equal(t, v, val)\n\n\t\t\tval2 := mustCurSession().Get(key2) // val2 exists\n\t\t\trequire.Equal(t, v2, val2)\n\t\t\t// doSomething....\n\n\t\t\tsig2 \u003c- struct{}{}\n\n\t\t\t\u003c-sig\n\t\t\trequire.False(t, mustCurSession().IsValid()) // current session is invalid\n\n\t\t\tprintln(\"g2 done\")\n\t\t\tsig2 \u003c- struct{}{}\n\t\t})\n\n\t\tGo(func() {\n\t\t\t// read specific key under current session\n\t\t\tval := mustCurSession().Get(key) // val exists\n\t\t\trequire.Equal(t, v, val)\n\n\t\t\tval2 := mustCurSession().Get(key2) // val2 exist\n\t\t\trequire.Equal(t, v2, val2)\n\t\t\t// doSomething....\n\n\t\t\tsig2 \u003c- struct{}{}\n\n\t\t\t\u003c-sig\n\t\t\trequire.False(t, mustCurSession().IsValid()) // current session is invalid\n\n\t\t\tprintln(\"g3 done\")\n\t\t\tsig2 \u003c- struct{}{}\n\t\t})\n\n\t\tBindSession(next)\n\t\tval2 = mustCurSession().Get(key2) // val2 exists\n\t\trequire.Equal(t, v2, val2)\n\n\t\tsig2 \u003c- struct{}{}\n\n\t\t\u003c-sig\n\t\trequire.False(t, next.IsValid()) // next is invalid\n\n\t\tprintln(\"g1 done\")\n\t\tsig2 \u003c- struct{}{}\n\t})\n\n\t\u003c-sig2\n\t\u003c-sig2\n\t\u003c-sig2\n\n\tval2 := mustCurSession().Get(key2) // val2 exists\n\trequire.Equal(t, v2, val2)\n\n\t// initiatively ends the session,\n\t// then all the inherited session (including next) will be disabled\n\tsession.Disable()\n\tclose(sig)\n\n\trequire.False(t, start.IsValid()) // start is invalid\n\n\t\u003c-sig2\n\t\u003c-sig2\n\t\u003c-sig2\n\tprintln(\"g0 done\")\n\n\tUnbindSession()\n}","Signature":"func TestSessionMap(t *testing.T)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","File":"api_test.go","Line":267,"StartOffset":6392,"EndOffset":6405},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"api_test.go","Line":273,"StartOffset":6567,"EndOffset":6578},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Go","File":"api_test.go","Line":276,"StartOffset":6617,"EndOffset":6619},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","File":"api_test.go","Line":278,"StartOffset":6683,"EndOffset":6697},{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","File":"api_test.go","Line":279,"StartOffset":6733,"EndOffset":6738},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","File":"api_test.go","Line":289,"StartOffset":7062,"EndOffset":7071},{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"False","File":"api_test.go","Line":301,"StartOffset":7361,"EndOffset":7366},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","File":"api_test.go","Line":357,"StartOffset":8462,"EndOffset":8475}],"MethodCalls":[{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","File":"api_test.go","Line":278,"StartOffset":6700,"EndOffset":6703},{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","File":"api_test.go","Line":284,"StartOffset":6896,"EndOffset":6905},{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","File":"api_test.go","Line":301,"StartOffset":7387,"EndOffset":7394}]},"TestSessionTimeout":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionTimeout","File":"api_test.go","Line":144,"StartOffset":3513,"EndOffset":3838,"Content":"func TestSessionTimeout(t *testing.T) {\n\ts := NewSessionCtxWithTimeout(context.Background(), time.Second)\n\tss := s.WithValue(1, 2)\n\tm := NewSessionMapWithTimeout(map[interface{}]interface{}{}, time.Second)\n\tmm := m.WithValue(1, 2)\n\ttime.Sleep(time.Second * 2)\n\trequire.False(t, ss.IsValid())\n\trequire.False(t, mm.IsValid())\n}","Signature":"func TestSessionTimeout(t *testing.T)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtxWithTimeout","File":"api_test.go","Line":145,"StartOffset":3559,"EndOffset":3583},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMapWithTimeout","File":"api_test.go","Line":147,"StartOffset":3650,"EndOffset":3674},{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"False","File":"api_test.go","Line":150,"StartOffset":3782,"EndOffset":3787}]},"TestTransparentTransmitAsync":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","File":"api_test.go","Line":99,"StartOffset":2465,"EndOffset":3511,"Content":"//go:nocheckptr\nfunc TestTransparentTransmitAsync(t *testing.T) {\n\told := defaultManagerObj\n\tInitDefaultManager(ManagerOptions{\n\t\tShardNumber: 10,\n\t\tEnableImplicitlyTransmitAsync: true,\n\t\tGCInterval: time.Second * 2,\n\t})\n\ts := NewSessionMap(map[interface{}]interface{}{\n\t\t\"a\": \"b\",\n\t})\n\n\tlabels := pprof.Labels(\"c\", \"d\")\n\n\t// WARNING: pprof.Do() must be called before BindSession(),\n\t// otherwise transparently transmitting session will be dysfunctional\n\tpprof.Do(context.Background(), labels, func(ctx context.Context) {})\n\n\tBindSession(s)\n\n\twg := sync.WaitGroup{}\n\twg.Add(3)\n\tgo func() {\n\t\tdefer wg.Done()\n\t\trequire.Equal(t, \"b\", mustCurSession().Get(\"a\"))\n\n\t\tgo func() {\n\t\t\tdefer wg.Done()\n\t\t\trequire.Equal(t, \"b\", mustCurSession().Get(\"a\"))\n\t\t}()\n\n\t\trequire.Equal(t, \"b\", mustCurSession().Get(\"a\"))\n\t\tUnbindSession()\n\t\trequire.Nil(t, mustCurSession())\n\n\t\tgo func() {\n\t\t\tdefer wg.Done()\n\t\t\trequire.Nil(t, mustCurSession())\n\t\t}()\n\t}()\n\n\twg.Wait()\n\tdefaultManagerObj = old\n\tdefaultManagerOnce = sync.Once{}\n}","Signature":"func TestTransparentTransmitAsync(t *testing.T)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","File":"api_test.go","Line":101,"StartOffset":2558,"EndOffset":2576},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","File":"api_test.go","Line":106,"StartOffset":2729,"EndOffset":2742},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","File":"api_test.go","Line":116,"StartOffset":3028,"EndOffset":3039},{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","File":"api_test.go","Line":122,"StartOffset":3120,"EndOffset":3125},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","File":"api_test.go","Line":122,"StartOffset":3134,"EndOffset":3148},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","File":"api_test.go","Line":130,"StartOffset":3307,"EndOffset":3320},{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Nil","File":"api_test.go","Line":131,"StartOffset":3333,"EndOffset":3336}],"MethodCalls":[{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","File":"api_test.go","Line":122,"StartOffset":3151,"EndOffset":3154}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","File":"api_test.go","Line":101,"StartOffset":2577,"EndOffset":2591}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","File":"api_test.go","Line":100,"StartOffset":2539,"EndOffset":2556},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerOnce","File":"api_test.go","Line":141,"StartOffset":3477,"EndOffset":3495}]},"UnbindSession":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","File":"gls.go","Line":129,"StartOffset":3459,"EndOffset":3866,"Content":"// UnbindSession unbind a session (if any) with current goroutine\n//\n// NOTICE: If you want to end the session,\n// please call `Disable()` (or whatever make the session invalid)\n// on your session's implementation\n//\n// NOTICE: MUST call `InitDefaultManager()` once before using this API\nfunc UnbindSession() {\n\tif defaultManagerObj == nil {\n\t\treturn\n\t}\n\tdefaultManagerObj.UnbindSession(SessionID(goID()))\n}","Signature":"func UnbindSession()","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","File":"gls.go","Line":133,"StartOffset":3856,"EndOffset":3860}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","File":"gls.go","Line":133,"StartOffset":3846,"EndOffset":3855}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","File":"gls.go","Line":130,"StartOffset":3774,"EndOffset":3791}]},"checkEnvOptions":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"checkEnvOptions","File":"gls.go","Line":77,"StartOffset":2279,"EndOffset":2906,"Content":"func checkEnvOptions(opts *ManagerOptions) {\n\tif env := os.Getenv(SESSION_CONFIG_KEY); env != \"\" {\n\t\tenvs := strings.Split(env, \",\")\n\t\t// parse first option as EnableTransparentTransmitAsync\n\t\tif strings.ToLower(envs[0]) == \"true\" {\n\t\t\topts.EnableImplicitlyTransmitAsync = true\n\t\t}\n\n\t\t// parse first option as ShardNumber\n\t\tif len(envs) \u003e 1 {\n\t\t\tif opt, err := strconv.Atoi(envs[1]); err == nil {\n\t\t\t\topts.ShardNumber = opt\n\t\t\t}\n\t\t}\n\n\t\t// parse third option as EnableTransparentTransmitAsync\n\t\tif len(envs) \u003e 2 {\n\t\t\tif d, err := time.ParseDuration(envs[2]); err == nil \u0026\u0026 d \u003e time.Second {\n\t\t\t\topts.GCInterval = d\n\t\t\t}\n\t\t}\n\t}\n}","Signature":"func checkEnvOptions(opts *ManagerOptions)","GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SESSION_CONFIG_KEY","File":"gls.go","Line":78,"StartOffset":2345,"EndOffset":2363}]},"clearSessionID":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"clearSessionID","File":"stubs.go","Line":77,"StartOffset":1687,"EndOffset":1948,"Content":"func clearSessionID() {\n\tm := getPproLabel()\n\tif m == nil {\n\t\treturn\n\t}\n\tif _, ok := (*m)[Pprof_Label_Session_ID]; !ok {\n\t\treturn\n\t}\n\tn := make(labelMap, len(*m))\n\tfor k, v := range *m {\n\t\tif k != Pprof_Label_Session_ID {\n\t\t\tn[k] = v\n\t\t}\n\t}\n\tsetPprofLabel(\u0026n)\n}","Signature":"func clearSessionID()","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getPproLabel","File":"stubs.go","Line":78,"StartOffset":1717,"EndOffset":1729},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"setPprofLabel","File":"stubs.go","Line":91,"StartOffset":1929,"EndOffset":1942}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"labelMap","File":"stubs.go","Line":85,"StartOffset":1831,"EndOffset":1839}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Pprof_Label_Session_ID","File":"stubs.go","Line":82,"StartOffset":1777,"EndOffset":1799}]},"emitLoops":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"emitLoops","File":"api_test.go","Line":601,"StartOffset":13084,"EndOffset":13768,"Content":"func emitLoops(m *SessionManager, ctx context.Context, N int, s *stat) {\n\tfor i := 0; i \u003c N; i++ {\n\t\tgo func() {\n\t\t\tfor {\n\t\t\t\tif ctx.Err() != nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tstart := time.Now()\n\t\t\t\tsession := NewSessionCtx(ctx)\n\t\t\t\tss := session.WithValue(\"a\", \"b\")\n\t\t\t\tm.BindSession(SessionID(goID()), ss)\n\t\t\t\tsss, _ := m.GetSession(SessionID(goID()))\n\t\t\t\tif val := sss.Get(\"a\"); val != \"b\" {\n\t\t\t\t\tpanic(fmt.Sprintf(\"unexpected val: %#v\", val))\n\t\t\t\t}\n\t\t\t\tm.UnbindSession(SessionID(goID()))\n\t\t\t\tcost := time.Now().Sub(start)\n\t\t\t\ts.Update(cost)\n\t\t\t\tfor a := 0; a \u003c 10; a++ {\n\t\t\t\t\ttime.Sleep(time.Microsecond * 50)\n\t\t\t\t\tfor b := 0; b \u003c 100000; b++ {\n\t\t\t\t\t\t_ = b\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\t}\n}","Signature":"func emitLoops(m *SessionManager, ctx context.Context, N int, s *stat)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","File":"api_test.go","Line":609,"StartOffset":13289,"EndOffset":13302},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","File":"api_test.go","Line":611,"StartOffset":13374,"EndOffset":13378}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","File":"api_test.go","Line":611,"StartOffset":13364,"EndOffset":13373}]},"getPproLabel":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getPproLabel","File":"stubs.go","Line":38,"StartOffset":931,"EndOffset":1022,"Content":"//go:linkname getPproLabel runtime/pprof.runtime_getProfLabel\nfunc getPproLabel() *labelMap","Signature":"func getPproLabel() *labelMap"},"getSessionID":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getSessionID","File":"stubs.go","Line":61,"StartOffset":1396,"EndOffset":1685,"Content":"func getSessionID() (SessionID, bool) {\n\tm := getPproLabel()\n\tif m == nil {\n\t\treturn 0, false\n\t}\n\tif v, ok := (*m)[Pprof_Label_Session_ID]; !ok {\n\t\treturn 0, false\n\t} else {\n\t\tid, err := strconv.ParseInt(v, 10, 64)\n\t\tif err != nil {\n\t\t\treturn 0, false\n\t\t}\n\t\treturn SessionID(id), true\n\t}\n}","Signature":"func getSessionID() (SessionID, bool)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getPproLabel","File":"stubs.go","Line":62,"StartOffset":1442,"EndOffset":1454}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","File":"stubs.go","Line":73,"StartOffset":1661,"EndOffset":1670}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Pprof_Label_Session_ID","File":"stubs.go","Line":66,"StartOffset":1511,"EndOffset":1533}]},"goID":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","File":"stubs.go","Line":24,"StartOffset":681,"EndOffset":800,"Content":"//go:nocheckptr\nfunc goID() uint64 {\n\tgid, err := runtimex.GID()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn uint64(gid)\n}","Signature":"func goID() uint64","FunctionCalls":[{"ModPath":"github.com/cloudwego/runtimex@v0.1.1","PkgPath":"github.com/cloudwego/runtimex","Name":"GID","File":"stubs.go","Line":25,"StartOffset":740,"EndOffset":743}]},"mustCurSession":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","File":"api_test.go","Line":255,"StartOffset":6122,"EndOffset":6187,"Content":"func mustCurSession() Session {\n\ts, _ := CurSession()\n\treturn s\n}","Signature":"func mustCurSession() Session","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","File":"api_test.go","Line":256,"StartOffset":6163,"EndOffset":6173}]},"newShard":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"newShard","File":"manager.go","Line":55,"StartOffset":1523,"EndOffset":1634,"Content":"func newShard() *shard {\n\tret := new(shard)\n\tret.m = make(map[SessionID]Session, defaultShardCap)\n\treturn ret\n}","Signature":"func newShard() *shard","Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard","File":"manager.go","Line":56,"StartOffset":1560,"EndOffset":1565},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","File":"manager.go","Line":57,"StartOffset":1585,"EndOffset":1594},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","File":"manager.go","Line":57,"StartOffset":1595,"EndOffset":1602}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultShardCap","File":"manager.go","Line":57,"StartOffset":1604,"EndOffset":1619}]},"setPprofLabel":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"setPprofLabel","File":"stubs.go","Line":35,"StartOffset":835,"EndOffset":929,"Content":"//go:linkname setPprofLabel runtime/pprof.runtime_setProfLabel\nfunc setPprofLabel(m *labelMap)","Signature":"func setPprofLabel(m *labelMap)"},"shard.Delete":{"Exported":false,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard.Delete","File":"manager.go","Line":107,"StartOffset":2677,"EndOffset":2766,"Content":"func (s *shard) Delete(id SessionID) {\n\ts.lock.Lock()\n\tdelete(s.m, id)\n\ts.lock.Unlock()\n}","Signature":"func (s *shard) Delete(id SessionID)","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}}},"shard.Load":{"Exported":false,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard.Load","File":"manager.go","Line":90,"StartOffset":2319,"EndOffset":2576,"Content":"func (s *shard) Load(id SessionID) (Session, bool) {\n\ts.lock.RLock()\n\n\t// p := atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(\u0026s.m)))\n\t// m := *(*map[SessionID]Session)(unsafe.Pointer(p))\n\n\tsession, ok := s.m[id]\n\ts.lock.RUnlock()\n\treturn session, ok\n}","Signature":"func (s *shard) Load(id SessionID) (Session, bool)","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}}},"shard.Store":{"Exported":false,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard.Store","File":"manager.go","Line":101,"StartOffset":2578,"EndOffset":2675,"Content":"func (s *shard) Store(id SessionID, se Session) {\n\ts.lock.Lock()\n\ts.m[id] = se\n\ts.lock.Unlock()\n}","Signature":"func (s *shard) Store(id SessionID, se Session)","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}}},"stat.String":{"Exported":false,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"stat.String","File":"api_test.go","Line":660,"StartOffset":14204,"EndOffset":14379,"Content":"func (st *stat) String() string {\n\tst.mux.RLock()\n\tdefer st.mux.RUnlock()\n\treturn fmt.Sprintf(\"min:%dns, max:%dns, avg:%dns\", st.min, st.max, st.sum/time.Duration(st.count))\n}","Signature":"func (st *stat) String() string","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"stat"}}},"stat.Update":{"Exported":false,"IsMethod":true,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"stat.Update","File":"api_test.go","Line":647,"StartOffset":14000,"EndOffset":14202,"Content":"func (st *stat) Update(cost time.Duration) {\n\tst.mux.Lock()\n\tdefer st.mux.Unlock()\n\tif cost \u003e st.max {\n\t\tst.max = cost\n\t} else if cost \u003c st.min {\n\t\tst.min = cost\n\t}\n\tst.count++\n\tst.sum += cost\n\treturn\n}","Signature":"func (st *stat) Update(cost time.Duration)","Receiver":{"IsPointer":true,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"stat"}}},"transmitSessionID":{"Exported":false,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"transmitSessionID","File":"stubs.go","Line":42,"StartOffset":1072,"EndOffset":1394,"Content":"func transmitSessionID(id SessionID) {\n\tm := getPproLabel()\n\n\tvar n labelMap\n\tif m == nil {\n\t\tn = make(labelMap)\n\t} else {\n\t\tn = make(labelMap, len(*m))\n\t\tfor k, v := range *m {\n\t\t\tif k != Pprof_Label_Session_ID {\n\t\t\t\tn[k] = v\n\t\t\t}\n\t\t}\n\t}\n\n\tn[Pprof_Label_Session_ID] = strconv.FormatInt(int64(id), 10)\n\tsetPprofLabel(\u0026n)\n}","Signature":"func transmitSessionID(id SessionID)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getPproLabel","File":"stubs.go","Line":43,"StartOffset":1117,"EndOffset":1129},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"setPprofLabel","File":"stubs.go","Line":58,"StartOffset":1375,"EndOffset":1388}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"labelMap","File":"stubs.go","Line":45,"StartOffset":1140,"EndOffset":1148}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Pprof_Label_Session_ID","File":"stubs.go","Line":51,"StartOffset":1261,"EndOffset":1283}]}},"Types":{"ManagerOptions":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","File":"manager.go","Line":24,"StartOffset":697,"EndOffset":1270,"Content":"// ManagerOptions for SessionManager\ntype ManagerOptions struct {\n\t// EnableImplicitlyTransmitAsync enables transparently transmit\n\t// current session to children goroutines\n\t//\n\t// WARNING: Once this option enables, if you want to use `pprof.Do()`, it must be called before `BindSession()`,\n\t// otherwise transmitting will be disfunctional\n\tEnableImplicitlyTransmitAsync bool\n\n\t// ShardNumber is used to shard session id, it must be larger than zero\n\tShardNumber int\n\n\t// GCInterval decides the GC interval for SessionManager,\n\t// it must be larger than 1s or zero means disable GC\n\tGCInterval time.Duration\n}"},"Session":{"Exported":true,"TypeKind":"interface","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","File":"session.go","Line":25,"StartOffset":725,"EndOffset":1027,"Content":"// Session represents a local storage for one session\ntype Session interface {\n\t// IsValid tells if the session is valid at present\n\tIsValid() bool\n\n\t// Get returns value for specific key\n\tGet(key interface{}) interface{}\n\n\t// WithValue sets value for specific key,and return newly effective session\n\tWithValue(key interface{}, val interface{}) Session\n}","Methods":{"Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session.Get"},"IsValid":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session.IsValid"},"WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session.WithValue"}}},"SessionCtx":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx","File":"session.go","Line":38,"StartOffset":1149,"EndOffset":1223,"Content":"// SessionCtx implements Session with context,\n// which means children session WON'T affect parent and sibling sessions\ntype SessionCtx struct {\n\tenabled *atomic.Value\n\tstorage context.Context\n}","Implements":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session"}]},"SessionID":{"Exported":true,"TypeKind":"typedef","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","File":"manager.go","Line":88,"StartOffset":2296,"EndOffset":2317,"Content":"// SessionID is the identity of a session\ntype SessionID uint64"},"SessionManager":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager","File":"manager.go","Line":46,"StartOffset":1389,"EndOffset":1495,"Content":"// SessionManager maintain and manage sessions\ntype SessionManager struct {\n\tshards []*shard\n\tinGC uint32\n\ttik *time.Ticker\n\topts ManagerOptions\n}"},"SessionMap":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap","File":"session.go","Line":95,"StartOffset":2566,"EndOffset":2674,"Content":"// NewSessionMap implements Session with map,\n// which means children session WILL affect parent session and sibling sessions\ntype SessionMap struct {\n\tenabled *atomic.Value\n\tstorage map[interface{}]interface{}\n\tlock sync.RWMutex\n}","Implements":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session"}]},"labelMap":{"Exported":false,"TypeKind":"typedef","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"labelMap","File":"stubs.go","Line":32,"StartOffset":802,"EndOffset":833,"Content":"type labelMap map[string]string"},"shard":{"Exported":false,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard","File":"manager.go","Line":40,"StartOffset":1272,"EndOffset":1340,"Content":"type shard struct {\n\tlock sync.RWMutex\n\tm map[SessionID]Session\n}"},"stat":{"Exported":false,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"stat","File":"api_test.go","Line":638,"StartOffset":13885,"EndOffset":13998,"Content":"type stat struct {\n\tmax time.Duration\n\tmin time.Duration\n\tsum time.Duration\n\tcount int\n\n\tmux sync.RWMutex\n}"}},"Vars":{"N":{"IsExported":true,"IsConst":true,"IsPointer":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","File":"api_test.go","Line":30,"StartOffset":751,"EndOffset":757,"Type":{"ModPath":"","PkgPath":"","Name":"untyped int"},"Content":"const N untyped int = 10"},"Pprof_Label_Session_ID":{"IsExported":true,"IsConst":true,"IsPointer":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Pprof_Label_Session_ID","File":"stubs.go","Line":40,"StartOffset":1030,"EndOffset":1070,"Type":{"ModPath":"","PkgPath":"","Name":"untyped string"},"Content":"const Pprof_Label_Session_ID untyped string = \"go_session_id\""},"SESSION_CONFIG_KEY":{"IsExported":true,"IsConst":true,"IsPointer":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SESSION_CONFIG_KEY","File":"gls.go","Line":34,"StartOffset":1142,"EndOffset":1193,"Type":{"ModPath":"","PkgPath":"","Name":"untyped string"},"Content":"// SESSION_CONFIG_KEY is the env key for configuring default session manager.\n//\n//\tValue format: [EnableImplicitlyTransmitAsync][,ShardNumber][,GCInterval]\n//\t- EnableImplicitlyTransmitAsync: 'true' means enabled, otherwist means disabled\n//\t- ShardNumber: integer \u003e 0\n//\t- GCInterval: Golang time.Duration format, such as '10m' means ten minutes for each GC\n//\n// Once the key is set, default option values will be set if the option value doesn't exist.\nconst SESSION_CONFIG_KEY untyped string = \"CLOUDWEGO_SESSION_CONFIG_KEY\""},"defaultManagerObj":{"IsExported":false,"IsConst":false,"IsPointer":true,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","File":"gls.go","Line":37,"StartOffset":1202,"EndOffset":1236,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"},"Content":"var defaultManagerObj *localsession.SessionManager"},"defaultManagerOnce":{"IsExported":false,"IsConst":false,"IsPointer":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerOnce","File":"gls.go","Line":38,"StartOffset":1238,"EndOffset":1266,"Type":{"ModPath":"","PkgPath":"sync","Name":"Once"},"Content":"var defaultManagerOnce sync.Once"},"defaultShardCap":{"IsExported":false,"IsConst":false,"IsPointer":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultShardCap","File":"manager.go","Line":53,"StartOffset":1501,"EndOffset":1521,"Type":{"ModPath":"","PkgPath":"","Name":"int"},"Content":"var defaultShardCap int = 10"}}},"github.com/cloudwego/localsession/backup":{"IsMain":false,"IsTest":false,"PkgPath":"github.com/cloudwego/localsession/backup","Functions":{"BackupCtx":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"BackupCtx","File":"backup/metainfo.go","Line":104,"StartOffset":2573,"EndOffset":2753,"Content":"// Set current Sessioin\nfunc BackupCtx(ctx context.Context) {\n\tif localsession.GetDefaultManager() == nil {\n\t\treturn\n\t}\n\tlocalsession.BindSession(localsession.NewSessionCtx(ctx))\n}","Signature":"func BackupCtx(ctx context.Context)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GetDefaultManager","File":"backup/metainfo.go","Line":105,"StartOffset":2652,"EndOffset":2669},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","File":"backup/metainfo.go","Line":108,"StartOffset":2707,"EndOffset":2718},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtx","File":"backup/metainfo.go","Line":108,"StartOffset":2732,"EndOffset":2745}]},"ClearCtx":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"ClearCtx","File":"backup/metainfo.go","Line":112,"StartOffset":2755,"EndOffset":2829,"Content":"// Unset current Session\nfunc ClearCtx() {\n\tlocalsession.UnbindSession()\n}","Signature":"func ClearCtx()","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","File":"backup/metainfo.go","Line":113,"StartOffset":2812,"EndOffset":2825}]},"DefaultOptions":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"DefaultOptions","File":"backup/metainfo.go","Line":36,"StartOffset":965,"EndOffset":1118,"Content":"// Default Options\nfunc DefaultOptions() Options {\n\treturn Options{\n\t\tEnable: false,\n\t\tManagerOptions: localsession.DefaultManagerOptions(),\n\t}\n}","Signature":"func DefaultOptions() Options","Results":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Options","File":"backup/metainfo.go","Line":36,"StartOffset":1006,"EndOffset":1013}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"DefaultManagerOptions","File":"backup/metainfo.go","Line":39,"StartOffset":1089,"EndOffset":1110}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Options","File":"backup/metainfo.go","Line":37,"StartOffset":1024,"EndOffset":1031}]},"Init":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Init","File":"backup/metainfo.go","Line":45,"StartOffset":1120,"EndOffset":1327,"Content":"// Init gloabal session manager\n// It uses env config first, the key is localsession.SESSION_CONFIG_KEY\nfunc Init(opts Options) {\n\tif opts.Enable {\n\t\tlocalsession.InitDefaultManager(opts.ManagerOptions)\n\t}\n}","Signature":"func Init(opts Options)","Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Options","File":"backup/metainfo.go","Line":45,"StartOffset":1234,"EndOffset":1246}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager","File":"backup/metainfo.go","Line":47,"StartOffset":1283,"EndOffset":1301}]},"RecoverCtxOnDemands":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"RecoverCtxOnDemands","File":"backup/metainfo.go","Line":54,"StartOffset":1329,"EndOffset":2571,"Content":"// If handler != nil, this func will try to merge metainfo\n// and pre-defined key-values (through Options.BackupHanlder)\n// from backup context into given context\nfunc RecoverCtxOnDemands(ctx context.Context, handler BackupHandler) context.Context {\n\tif handler == nil {\n\t\treturn ctx\n\t}\n\ts, ok := localsession.CurSession()\n\tif !ok {\n\t\treturn ctx\n\t}\n\tc, ok := s.(localsession.SessionCtx)\n\tif !ok {\n\t\treturn ctx\n\t}\n\tpre := c.Export()\n\n\t// trigger user-defined handler if any\n\tnctx, backup := handler(pre, ctx)\n\tif !backup {\n\t\treturn ctx\n\t}\n\tctx = nctx\n\n\t// two-way merge all persistent metainfo if pre context has\n\tif n := metainfo.CountPersistentValues(pre); n \u003e 0 {\n\t\t// persistent kvs\n\t\tkvs := make([]string, 0, n*2)\n\t\tmkvs := metainfo.GetAllPersistentValues(ctx)\n\n\t\t// incoming ctx is prior to session\n\t\tif len(mkvs) == 0 {\n\t\t\t// merge all kvs from pre\n\t\t\tmetainfo.RangePersistentValues(pre, func(k, v string) bool {\n\t\t\t\tkvs = append(kvs, k, v)\n\t\t\t\treturn true\n\t\t\t})\n\t\t} else {\n\t\t\tmetainfo.RangePersistentValues(pre, func(k, v string) bool {\n\t\t\t\t// filter kvs which exists in cur\n\t\t\t\tif _, ok := mkvs[k]; !ok {\n\t\t\t\t\tkvs = append(kvs, k, v)\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t})\n\t\t}\n\t\tctx = metainfo.WithPersistentValues(ctx, kvs...)\n\t}\n\n\treturn ctx\n}","Signature":"func RecoverCtxOnDemands(ctx context.Context, handler BackupHandler) context.Context","Params":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"BackupHandler","File":"backup/metainfo.go","Line":54,"StartOffset":1538,"EndOffset":1559}],"FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","File":"backup/metainfo.go","Line":58,"StartOffset":1639,"EndOffset":1649},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"CountPersistentValues","File":"backup/metainfo.go","Line":76,"StartOffset":1959,"EndOffset":1980},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"GetAllPersistentValues","File":"backup/metainfo.go","Line":79,"StartOffset":2066,"EndOffset":2088},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"RangePersistentValues","File":"backup/metainfo.go","Line":84,"StartOffset":2196,"EndOffset":2217},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithPersistentValues","File":"backup/metainfo.go","Line":97,"StartOffset":2520,"EndOffset":2540}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Export","File":"backup/metainfo.go","Line":66,"StartOffset":1752,"EndOffset":1758}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","File":"backup/metainfo.go","Line":62,"StartOffset":1704,"EndOffset":1714}]}},"Types":{"BackupHandler":{"Exported":true,"TypeKind":"typedef","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"BackupHandler","File":"backup/metainfo.go","Line":27,"StartOffset":800,"EndOffset":885,"Content":"// BackupHandler is used to decide and recover prev context to cur context\ntype BackupHandler func(prev, cur context.Context) (ctx context.Context, backup bool)"},"Options":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Options","File":"backup/metainfo.go","Line":30,"StartOffset":898,"EndOffset":963,"Content":"// Options\ntype Options struct {\n\tEnable bool\n\tlocalsession.ManagerOptions\n}","InlineStruct":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","File":"backup/metainfo.go","Line":32,"StartOffset":934,"EndOffset":961}]}},"Vars":{}},"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]":{"IsMain":false,"IsTest":true,"PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Functions":{"BackupCtx":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupCtx","File":"backup/metainfo.go","Line":104,"StartOffset":2573,"EndOffset":2753,"Content":"// Set current Sessioin\nfunc BackupCtx(ctx context.Context) {\n\tif localsession.GetDefaultManager() == nil {\n\t\treturn\n\t}\n\tlocalsession.BindSession(localsession.NewSessionCtx(ctx))\n}","Signature":"func BackupCtx(ctx context.Context)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GetDefaultManager","File":"backup/metainfo.go","Line":105,"StartOffset":2652,"EndOffset":2669},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","File":"backup/metainfo.go","Line":108,"StartOffset":2707,"EndOffset":2718},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtx","File":"backup/metainfo.go","Line":108,"StartOffset":2732,"EndOffset":2745}]},"ClearCtx":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"ClearCtx","File":"backup/metainfo.go","Line":112,"StartOffset":2755,"EndOffset":2829,"Content":"// Unset current Session\nfunc ClearCtx() {\n\tlocalsession.UnbindSession()\n}","Signature":"func ClearCtx()","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","File":"backup/metainfo.go","Line":113,"StartOffset":2812,"EndOffset":2825}]},"DefaultOptions":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"DefaultOptions","File":"backup/metainfo.go","Line":36,"StartOffset":965,"EndOffset":1118,"Content":"// Default Options\nfunc DefaultOptions() Options {\n\treturn Options{\n\t\tEnable: false,\n\t\tManagerOptions: localsession.DefaultManagerOptions(),\n\t}\n}","Signature":"func DefaultOptions() Options","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"DefaultManagerOptions","File":"backup/metainfo.go","Line":39,"StartOffset":1089,"EndOffset":1110}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"Options","File":"backup/metainfo.go","Line":37,"StartOffset":1024,"EndOffset":1031}]},"Init":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"Init","File":"backup/metainfo.go","Line":45,"StartOffset":1120,"EndOffset":1327,"Content":"// Init gloabal session manager\n// It uses env config first, the key is localsession.SESSION_CONFIG_KEY\nfunc Init(opts Options) {\n\tif opts.Enable {\n\t\tlocalsession.InitDefaultManager(opts.ManagerOptions)\n\t}\n}","Signature":"func Init(opts Options)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager","File":"backup/metainfo.go","Line":47,"StartOffset":1283,"EndOffset":1301}]},"RecoverCtxOnDemands":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","File":"backup/metainfo.go","Line":54,"StartOffset":1329,"EndOffset":2571,"Content":"// If handler != nil, this func will try to merge metainfo\n// and pre-defined key-values (through Options.BackupHanlder)\n// from backup context into given context\nfunc RecoverCtxOnDemands(ctx context.Context, handler BackupHandler) context.Context {\n\tif handler == nil {\n\t\treturn ctx\n\t}\n\ts, ok := localsession.CurSession()\n\tif !ok {\n\t\treturn ctx\n\t}\n\tc, ok := s.(localsession.SessionCtx)\n\tif !ok {\n\t\treturn ctx\n\t}\n\tpre := c.Export()\n\n\t// trigger user-defined handler if any\n\tnctx, backup := handler(pre, ctx)\n\tif !backup {\n\t\treturn ctx\n\t}\n\tctx = nctx\n\n\t// two-way merge all persistent metainfo if pre context has\n\tif n := metainfo.CountPersistentValues(pre); n \u003e 0 {\n\t\t// persistent kvs\n\t\tkvs := make([]string, 0, n*2)\n\t\tmkvs := metainfo.GetAllPersistentValues(ctx)\n\n\t\t// incoming ctx is prior to session\n\t\tif len(mkvs) == 0 {\n\t\t\t// merge all kvs from pre\n\t\t\tmetainfo.RangePersistentValues(pre, func(k, v string) bool {\n\t\t\t\tkvs = append(kvs, k, v)\n\t\t\t\treturn true\n\t\t\t})\n\t\t} else {\n\t\t\tmetainfo.RangePersistentValues(pre, func(k, v string) bool {\n\t\t\t\t// filter kvs which exists in cur\n\t\t\t\tif _, ok := mkvs[k]; !ok {\n\t\t\t\t\tkvs = append(kvs, k, v)\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t})\n\t\t}\n\t\tctx = metainfo.WithPersistentValues(ctx, kvs...)\n\t}\n\n\treturn ctx\n}","Signature":"func RecoverCtxOnDemands(ctx context.Context, handler BackupHandler) context.Context","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","File":"backup/metainfo.go","Line":58,"StartOffset":1639,"EndOffset":1649},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"CountPersistentValues","File":"backup/metainfo.go","Line":76,"StartOffset":1959,"EndOffset":1980},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"GetAllPersistentValues","File":"backup/metainfo.go","Line":79,"StartOffset":2066,"EndOffset":2088},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"RangePersistentValues","File":"backup/metainfo.go","Line":84,"StartOffset":2196,"EndOffset":2217},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithPersistentValues","File":"backup/metainfo.go","Line":97,"StartOffset":2520,"EndOffset":2540}],"MethodCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Export","File":"backup/metainfo.go","Line":66,"StartOffset":1752,"EndOffset":1758}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","File":"backup/metainfo.go","Line":62,"StartOffset":1704,"EndOffset":1714}]},"TestMain":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestMain","File":"backup/metainfo_test.go","Line":27,"StartOffset":704,"EndOffset":854,"Content":"func TestMain(m *testing.M) {\n\topts := DefaultOptions()\n\topts.EnableImplicitlyTransmitAsync = true\n\topts.Enable = true\n\tInit(opts)\n\tos.Exit(m.Run())\n}","Signature":"func TestMain(m *testing.M)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"DefaultOptions","File":"backup/metainfo_test.go","Line":28,"StartOffset":743,"EndOffset":757},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"Init","File":"backup/metainfo_test.go","Line":31,"StartOffset":824,"EndOffset":828}]},"TestRecoverCtxOndemands":{"Exported":true,"IsMethod":false,"IsInterfaceMethod":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","File":"backup/metainfo_test.go","Line":39,"StartOffset":918,"EndOffset":2703,"Content":"func TestRecoverCtxOndemands(t *testing.T) {\n\tctx := context.WithValue(context.Background(), CtxKeyTest1, \"c\")\n\tBackupCtx(metainfo.WithPersistentValues(ctx, \"a\", \"a\", \"b\", \"b\"))\n\n\thandler := BackupHandler(func(prev, cur context.Context) (ctx context.Context, backup bool) {\n\t\tif v := cur.Value(CtxKeyTest1); v == nil {\n\t\t\tv = prev.Value(CtxKeyTest1)\n\t\t\tif v != nil {\n\t\t\t\tctx = context.WithValue(cur, CtxKeyTest1, v)\n\t\t\t} else {\n\t\t\t\tctx = cur\n\t\t\t}\n\t\t\treturn ctx, true\n\t\t}\n\t\treturn cur, false\n\t})\n\ttype args struct {\n\t\tctx context.Context\n\t\thandler BackupHandler\n\t}\n\ttests := []struct {\n\t\tname string\n\t\targs args\n\t\twant context.Context\n\t}{\n\t\t{\n\t\t\tname: \"triggered\",\n\t\t\targs: args{\n\t\t\t\tctx: metainfo.WithValue(metainfo.WithPersistentValue(context.Background(), \"a\", \"aa\"), \"b\", \"bb\"),\n\t\t\t\thandler: handler,\n\t\t\t},\n\t\t\twant: metainfo.WithPersistentValues(ctx, \"a\", \"aa\", \"b\", \"b\"),\n\t\t},\n\t\t{\n\t\t\tname: \"not triggered\",\n\t\t\targs: args{\n\t\t\t\tctx: metainfo.WithValue(metainfo.WithPersistentValue(ctx, \"a\", \"aa\"), \"b\", \"bb\"),\n\t\t\t\thandler: handler,\n\t\t\t},\n\t\t\twant: metainfo.WithValue(metainfo.WithPersistentValue(ctx, \"a\", \"aa\"), \"b\", \"bb\"),\n\t\t},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := RecoverCtxOnDemands(tt.args.ctx, tt.args.handler); got != nil {\n\t\t\t\tif v := got.Value(CtxKeyTest1); v == nil {\n\t\t\t\t\tt.Errorf(\"not got CtxKeyTest1\")\n\t\t\t\t}\n\t\t\t\ta, _ := metainfo.GetPersistentValue(got, \"a\")\n\t\t\t\tae, _ := metainfo.GetPersistentValue(tt.want, \"a\")\n\t\t\t\tif a != ae {\n\t\t\t\t\tt.Errorf(\"CurSession() = %v, want %v\", a, ae)\n\t\t\t\t}\n\t\t\t\tb, _ := metainfo.GetPersistentValue(got, \"b\")\n\t\t\t\tbe, _ := metainfo.GetPersistentValue(tt.want, \"b\")\n\t\t\t\tif b != be {\n\t\t\t\t\tt.Errorf(\"CurSession() = %v, want %v\", b, be)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tt.Fatal(\"no got\")\n\t\t\t}\n\t\t})\n\t}\n}","Signature":"func TestRecoverCtxOndemands(t *testing.T)","FunctionCalls":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupCtx","File":"backup/metainfo_test.go","Line":41,"StartOffset":1030,"EndOffset":1039},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithPersistentValues","File":"backup/metainfo_test.go","Line":41,"StartOffset":1049,"EndOffset":1069},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithValue","File":"backup/metainfo_test.go","Line":67,"StartOffset":1623,"EndOffset":1632},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithPersistentValue","File":"backup/metainfo_test.go","Line":67,"StartOffset":1642,"EndOffset":1661},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","File":"backup/metainfo_test.go","Line":83,"StartOffset":2143,"EndOffset":2162},{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"GetPersistentValue","File":"backup/metainfo_test.go","Line":87,"StartOffset":2318,"EndOffset":2336}],"Types":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupHandler","File":"backup/metainfo_test.go","Line":43,"StartOffset":1109,"EndOffset":1122},{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"args","File":"backup/metainfo_test.go","Line":61,"StartOffset":1528,"EndOffset":1532}],"GlobalVars":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"CtxKeyTest1","File":"backup/metainfo_test.go","Line":40,"StartOffset":1011,"EndOffset":1022}]}},"Types":{"BackupHandler":{"Exported":true,"TypeKind":"typedef","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupHandler","File":"backup/metainfo.go","Line":27,"StartOffset":800,"EndOffset":885,"Content":"// BackupHandler is used to decide and recover prev context to cur context\ntype BackupHandler func(prev, cur context.Context) (ctx context.Context, backup bool)"},"CtxKeyTestType":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"CtxKeyTestType","File":"backup/metainfo_test.go","Line":35,"StartOffset":856,"EndOffset":884,"Content":"type CtxKeyTestType struct{}"},"Options":{"Exported":true,"TypeKind":"struct","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"Options","File":"backup/metainfo.go","Line":30,"StartOffset":898,"EndOffset":963,"Content":"// Options\ntype Options struct {\n\tEnable bool\n\tlocalsession.ManagerOptions\n}","InlineStruct":[{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","File":"backup/metainfo.go","Line":32,"StartOffset":934,"EndOffset":961}]}},"Vars":{"CtxKeyTest1":{"IsExported":true,"IsConst":false,"IsPointer":false,"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"CtxKeyTest1","File":"backup/metainfo_test.go","Line":37,"StartOffset":890,"EndOffset":916,"Type":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession/backup","Name":"CtxKeyTestType"},"Content":"var CtxKeyTest1 backup.CtxKeyTestType"}}}},"Dependencies":{"github.com/bytedance/gopkg":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","github.com/cloudwego/runtimex":"github.com/cloudwego/runtimex@v0.1.1","github.com/davecgh/go-spew":"github.com/davecgh/go-spew@v1.1.0","github.com/modern-go/reflect2":"github.com/modern-go/reflect2@v1.0.2","github.com/pmezard/go-difflib":"github.com/pmezard/go-difflib@v1.0.0","github.com/stretchr/testify":"github.com/stretchr/testify@v1.7.0","golang.org/x/net":"golang.org/x/net@v0.0.0-20221014081412-f15817d10f9b","golang.org/x/text":"golang.org/x/text@v0.3.7","gopkg.in/yaml.v3":"gopkg.in/yaml.v3@v3.0.0-20200313102051-9f266ea9e77c"},"Files":{"../../../../../Library/Caches/go-build/82/82c49baef651a00e1ad23746fdae64f5320212275be6cba7762255b951c019a7-d":{"Path":"../../../../../Library/Caches/go-build/82/82c49baef651a00e1ad23746fdae64f5320212275be6cba7762255b951c019a7-d","Imports":[{"Path":"\"os\""},{"Path":"\"reflect\""},{"Path":"\"testing\""},{"Path":"\"testing/internal/testdeps\""},{"Alias":"_test","Path":"\"github.com/cloudwego/localsession\""}],"Package":"github.com/cloudwego/localsession.test"},"../../../../../Library/Caches/go-build/d5/d5836dbfe100333ed76b708e65390a160b80c1433a312f94a9c2ba23d005dbd6-d":{"Path":"../../../../../Library/Caches/go-build/d5/d5836dbfe100333ed76b708e65390a160b80c1433a312f94a9c2ba23d005dbd6-d","Imports":[{"Path":"\"os\""},{"Path":"\"reflect\""},{"Path":"\"testing\""},{"Path":"\"testing/internal/testdeps\""},{"Alias":"_test","Path":"\"github.com/cloudwego/localsession/backup\""}],"Package":"github.com/cloudwego/localsession/backup.test"},".github/ISSUE_TEMPLATE/bug_report.md":{"Path":".github/ISSUE_TEMPLATE/bug_report.md"},".github/ISSUE_TEMPLATE/feature_request.md":{"Path":".github/ISSUE_TEMPLATE/feature_request.md"},".github/PULL_REQUEST_TEMPLATE.md":{"Path":".github/PULL_REQUEST_TEMPLATE.md"},".github/workflows/release-check.yml":{"Path":".github/workflows/release-check.yml"},".github/workflows/tests.yml":{"Path":".github/workflows/tests.yml"},".gitignore":{"Path":".gitignore"},".golangci.yaml":{"Path":".golangci.yaml"},".licenserc.yaml":{"Path":".licenserc.yaml"},"CODE_OF_CONDUCT.md":{"Path":"CODE_OF_CONDUCT.md"},"CONTRIBUTING.md":{"Path":"CONTRIBUTING.md"},"LICENSE-APACHE":{"Path":"LICENSE-APACHE"},"README.md":{"Path":"README.md"},"_typos.toml":{"Path":"_typos.toml"},"api_test.go":{"Path":"api_test.go","Imports":[{"Path":"\"context\""},{"Path":"\"fmt\""},{"Path":"\"math\""},{"Path":"\"os\""},{"Path":"\"runtime/pprof\""},{"Path":"\"sync\""},{"Path":"\"testing\""},{"Path":"\"time\""},{"Path":"\"github.com/stretchr/testify/require\""}],"Package":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]"},"backup/metainfo.go":{"Path":"backup/metainfo.go","Imports":[{"Path":"\"context\""},{"Path":"\"github.com/bytedance/gopkg/cloud/metainfo\""},{"Path":"\"github.com/cloudwego/localsession\""}],"Package":"github.com/cloudwego/localsession/backup"},"backup/metainfo_test.go":{"Path":"backup/metainfo_test.go","Imports":[{"Path":"\"context\""},{"Path":"\"os\""},{"Path":"\"testing\""},{"Path":"\"github.com/bytedance/gopkg/cloud/metainfo\""}],"Package":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]"},"check_branch_name.sh":{"Path":"check_branch_name.sh"},"example_test.go":{"Path":"example_test.go","Imports":[{"Path":"\"context\""},{"Path":"\"runtime/pprof\""},{"Path":"\"sync\""},{"Path":"\"time\""}],"Package":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]"},"gls.go":{"Path":"gls.go","Imports":[{"Path":"\"fmt\""},{"Path":"\"os\""},{"Path":"\"strconv\""},{"Path":"\"strings\""},{"Path":"\"sync\""},{"Path":"\"time\""}],"Package":"github.com/cloudwego/localsession"},"go.mod":{"Path":"go.mod"},"go.sum":{"Path":"go.sum"},"manager.go":{"Path":"manager.go","Imports":[{"Path":"\"sync\""},{"Path":"\"sync/atomic\""},{"Path":"\"time\""}],"Package":"github.com/cloudwego/localsession"},"session.go":{"Path":"session.go","Imports":[{"Path":"\"context\""},{"Path":"\"sync\""},{"Path":"\"sync/atomic\""},{"Path":"\"time\""}],"Package":"github.com/cloudwego/localsession"},"stubs.go":{"Path":"stubs.go","Imports":[{"Path":"\"strconv\""},{"Alias":"_","Path":"\"unsafe\""},{"Path":"\"github.com/cloudwego/runtimex\""}],"Package":"github.com/cloudwego/localsession"}}}},"Graph":{"?#int":{"ModPath":"","PkgPath":"","Name":"int","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultShardCap"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultShardCap"}]},"?#untyped int":{"ModPath":"","PkgPath":"","Name":"untyped int","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N"}]},"?#untyped string":{"ModPath":"","PkgPath":"","Name":"untyped string","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Pprof_Label_Session_ID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SESSION_CONFIG_KEY"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Pprof_Label_Session_ID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SESSION_CONFIG_KEY"}]},"?github.com/cloudwego/localsession#Session.Get":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Get","Line":10},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":22},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":18},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":19},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx_EnableImplicitlyTransmitAsync","Line":27},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":23}]},"?github.com/cloudwego/localsession#Session.IsValid":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":45},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":41},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":42}]},"?github.com/cloudwego/localsession#Session.WithValue":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Set","Line":11},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":28},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":24},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":25}]},"?github.com/cloudwego/localsession#SessionCtx":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.WithValue"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.Disable"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.IsValid"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.Get"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.Export"}]},"?github.com/cloudwego/localsession#SessionManager":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.GC"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.BindSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.startGC"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.Options"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.UnbindSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.GetSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.Close"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj"}]},"?github.com/cloudwego/localsession#SessionMap":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.WithValue"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.IsValid"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.Export"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.Disable"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.Get"}]},"?github.com/cloudwego/localsession#SessionMap.WithValue":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.WithValue","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRace","Line":13}]},"?github.com/cloudwego/localsession#shard":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"shard","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard.Delete"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard.Load"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard.Store"}]},"?github.com/cloudwego/localsession#stat":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"stat","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"stat.Update"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"stat.String"}]},"?github.com/cloudwego/localsession/backup#CtxKeyTestType":{"ModPath":"","PkgPath":"github.com/cloudwego/localsession/backup","Name":"CtxKeyTestType","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"CtxKeyTest1"}]},"?sync#Once":{"ModPath":"","PkgPath":"sync","Name":"Once","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerOnce"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerOnce"}]},"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b?github.com/bytedance/gopkg/cloud/metainfo#CountPersistentValues":{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"CountPersistentValues","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"RecoverCtxOnDemands","Line":22},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","Line":22}]},"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b?github.com/bytedance/gopkg/cloud/metainfo#GetAllPersistentValues":{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"GetAllPersistentValues","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"RecoverCtxOnDemands","Line":25},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","Line":25}]},"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b?github.com/bytedance/gopkg/cloud/metainfo#GetPersistentValue":{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"GetPersistentValue","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","Line":48}]},"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b?github.com/bytedance/gopkg/cloud/metainfo#RangePersistentValues":{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"RangePersistentValues","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"RecoverCtxOnDemands","Line":30},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","Line":30}]},"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b?github.com/bytedance/gopkg/cloud/metainfo#WithPersistentValue":{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithPersistentValue","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","Line":28}]},"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b?github.com/bytedance/gopkg/cloud/metainfo#WithPersistentValues":{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithPersistentValues","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"RecoverCtxOnDemands","Line":43},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","Line":43},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","Line":2}]},"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b?github.com/bytedance/gopkg/cloud/metainfo#WithValue":{"ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithValue","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","Line":28}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#ASSERT":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ASSERT","Type":"FUNC","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":23},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx_EnableImplicitlyTransmitAsync","Line":27}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#BenchmarkGLS_Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Get","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","Line":10},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":12},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","Line":10},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#BenchmarkGLS_Set":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Set","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":9},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","Line":11},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":13},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","Line":11},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#BenchmarkLoops":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkLoops","Type":"FUNC"},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#BenchmarkSessionCtx_Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionCtx_Get","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#BenchmarkSessionCtx_WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionCtx_WithValue","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#BenchmarkSessionManager_BindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionManager_BindSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":5}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#BenchmarkSessionManager_CurSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionManager_CurSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":8}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#BenchmarkSessionMap_Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionMap_Get","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#BenchmarkSessionMap_WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionMap_WithValue","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#BindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","Line":9},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Get","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Set","Line":9},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":17},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionManager_CurSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":13},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":14},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionManager_BindSession","Line":5},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx_EnableImplicitlyTransmitAsync","Line":16},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":17}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#CurSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GetCurSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Go","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#DefaultManagerOptions":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"DefaultManagerOptions","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestResetDefaultManager","Line":19},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestMain","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#ExampleSessionCtx":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"DefaultManagerOptions","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":11},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":17},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Go","Line":20},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GetCurSession","Line":22},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ASSERT","Line":23},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","Line":33},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":101},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","Line":22},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","Line":28},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","Line":45}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#ExampleSessionCtx_EnableImplicitlyTransmitAsync":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx_EnableImplicitlyTransmitAsync","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","Line":13},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":16},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ASSERT","Line":27},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","Line":27},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":35},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","Line":27},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#GetCurSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GetCurSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":22}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#GetDefaultManager":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GetDefaultManager","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#Go":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Go","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","Line":3}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":20},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":16},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":17}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#GoSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":9}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":33},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":29},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":30},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Go","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#InitDefaultManager":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"checkEnvOptions","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","Line":5}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestResetDefaultManager","Line":10},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestMain","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx_EnableImplicitlyTransmitAsync","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#ManagerOptions":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestResetDefaultManager","Line":5},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"DefaultManagerOptions","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRace","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRealBizGLS","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx_EnableImplicitlyTransmitAsync","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionManager_GC","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#N":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"N","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"","Name":"untyped int"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionCtx_Get","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Get","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Set","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionCtx_WithValue","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionMap_Get","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionMap_WithValue","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#NewSessionCtx":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx","Line":3}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionCtx_Get","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"emitLoops","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Get","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Set","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionCtx_WithValue","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":11},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionManager_CurSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtxWithTimeout","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionManager_BindSession","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#NewSessionCtxWithTimeout":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtxWithTimeout","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionTimeout","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#NewSessionManager":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"newShard","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager","Line":8}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRace","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRealBizGLS","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionManager_GC","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#NewSessionMap":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap","Line":3}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMapWithTimeout","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRace","Line":13},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionMap_Get","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionMap_WithValue","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":7},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx_EnableImplicitlyTransmitAsync","Line":13},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionManager_GC","Line":11},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":7}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#NewSessionMapWithTimeout":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMapWithTimeout","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionTimeout","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#Pprof_Label_Session_ID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Pprof_Label_Session_ID","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"","Name":"untyped string"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"clearSessionID","Line":5},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getSessionID","Line":5},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"transmitSessionID","Line":9}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SESSION_CONFIG_KEY":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SESSION_CONFIG_KEY","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"","Name":"untyped string"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestResetDefaultManager","Line":18},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"checkEnvOptions","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#Session":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionCtx_Get","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.GC","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Get","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Set","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionCtx_WithValue","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionMap_Get","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionMap_WithValue","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"newShard","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#Session.Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session.Get","Type":"FUNC"},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#Session.IsValid":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session.IsValid","Type":"FUNC"},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#Session.WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session.WithValue","Type":"FUNC"},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionCtx":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.WithValue","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":3}],"Implements":[{"Kind":"Implement","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionCtx.Disable":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.Disable","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionCtx.Export":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.Export","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionCtx.Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.Get","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionCtx.IsValid":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.IsValid","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionCtx.WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx.WithValue","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionCtx","Line":2},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"emitLoops","Line":10},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.GC","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRace","Line":15},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"newShard","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionManager_GC","Line":12},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getSessionID","Line":12}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionManager":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","Line":8}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionManager.BindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.BindSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"transmitSessionID","Line":6},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionManager.Close":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.Close","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionManager.GC":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.GC","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","Line":8},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionManager.GetSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.GetSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getSessionID","Line":10},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionManager.Options":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.Options","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionManager.UnbindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.UnbindSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"clearSessionID","Line":9},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionManager.startGC":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.startGC","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionMap":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","Line":3}],"Implements":[{"Kind":"Implement","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionMap.Disable":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.Disable","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionMap.Export":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.Export","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionMap.Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.Get","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionMap.IsValid":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.IsValid","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#SessionMap.WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionMap.WithValue","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#TestMain":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestMain","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"DefaultManagerOptions","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#TestRace":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRace","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","Line":13},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.WithValue","Line":13},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","Line":15}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#TestRealBizGLS":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRealBizGLS","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"emitLoops","Line":10},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"stat","Line":6}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#TestResetDefaultManager":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestResetDefaultManager","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","Line":10},{"Kind":"Dependency","ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","Line":12},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"DefaultManagerOptions","Line":19},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","Line":5},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerOnce","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SESSION_CONFIG_KEY","Line":18}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#TestSessionCtx":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":14},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Go","Line":17},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","Line":19},{"Kind":"Dependency","ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","Line":20},{"Kind":"Dependency","ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Nil","Line":27},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","Line":30},{"Kind":"Dependency","ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"False","Line":42},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":98},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","Line":19},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","Line":25},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","Line":42}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#TestSessionManager_GC":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionManager_GC","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","Line":11},{"Kind":"Dependency","ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","Line":21},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","Line":12}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#TestSessionMap":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","Line":7},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":13},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Go","Line":16},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","Line":18},{"Kind":"Dependency","ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","Line":19},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","Line":29},{"Kind":"Dependency","ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"False","Line":41},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":97},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","Line":18},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","Line":24},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","Line":41}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#TestSessionTimeout":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionTimeout","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtxWithTimeout","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMapWithTimeout","Line":3},{"Kind":"Dependency","ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"False","Line":6}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#TestTransparentTransmitAsync":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionMap","Line":7},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":17},{"Kind":"Dependency","ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","Line":23},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","Line":23},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":31},{"Kind":"Dependency","ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Nil","Line":32},{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","Line":23},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ManagerOptions","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerOnce","Line":42}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#UnbindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GoSession","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Get","Line":12},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Set","Line":13},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx","Line":101},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionManager_CurSession","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":97},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":98},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx_EnableImplicitlyTransmitAsync","Line":35},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":31}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#checkEnvOptions":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"checkEnvOptions","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SESSION_CONFIG_KEY","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#clearSessionID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"clearSessionID","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getPproLabel","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"setPprofLabel","Line":14},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"labelMap","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Pprof_Label_Session_ID","Line":5}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.UnbindSession","Line":9}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#defaultManagerObj":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerObj","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"GetDefaultManager","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestResetDefaultManager","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"InitDefaultManager","Line":5},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#defaultManagerOnce":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultManagerOnce","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"sync","Name":"Once"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestResetDefaultManager","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":42}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#defaultShardCap":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultShardCap","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"","Name":"int"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"newShard","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#emitLoops":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"emitLoops","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionCtx","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","Line":10},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","Line":10}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRealBizGLS","Line":10}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#getPproLabel":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getPproLabel","Type":"FUNC","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"clearSessionID","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getSessionID","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"transmitSessionID","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#getSessionID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getSessionID","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getPproLabel","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","Line":12},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Pprof_Label_Session_ID","Line":5}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.GetSession","Line":10}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#goID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/runtimex@v0.1.1","PkgPath":"github.com/cloudwego/runtimex","Name":"GID","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"emitLoops","Line":10},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"UnbindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#labelMap":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"labelMap","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"clearSessionID","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"transmitSessionID","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#mustCurSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"mustCurSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"CurSession","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Get","Line":10},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkGLS_Set","Line":11},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"BenchmarkSessionManager_CurSession","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":18},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":19},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"ExampleSessionCtx_EnableImplicitlyTransmitAsync","Line":27},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":23}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#newShard":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"newShard","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionID","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Session","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"defaultShardCap","Line":2}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","Line":6}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#setPprofLabel":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"setPprofLabel","Type":"FUNC","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"clearSessionID","Line":14},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"transmitSessionID","Line":16}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#shard":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"NewSessionManager","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"newShard","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#shard.Delete":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard.Delete","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#shard.Load":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard.Load","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#shard.Store":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"shard.Store","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#stat":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"stat","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestRealBizGLS","Line":6}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#stat.String":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"stat.String","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"stat"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#stat.Update":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"stat.Update","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession","Name":"stat"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]#transmitSessionID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"transmitSessionID","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"getPproLabel","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"setPprofLabel","Line":16},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"labelMap","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"Pprof_Label_Session_ID","Line":9}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"SessionManager.BindSession","Line":6}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#BindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"goID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.BindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"BackupCtx","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupCtx","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GoSession","Line":9}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#CurSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"goID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GetSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"RecoverCtxOnDemands","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Go","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#DefaultManagerOptions":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"DefaultManagerOptions","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"DefaultOptions","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"DefaultOptions","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#GetDefaultManager":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GetDefaultManager","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"BackupCtx","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupCtx","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#Go":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Go","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GoSession","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#GoSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GoSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","Line":9}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Go","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#InitDefaultManager":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"checkEnvOptions","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionManager","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Close","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","Line":5}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Init","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"Init","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#ManagerOptions":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"DefaultManagerOptions"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"checkEnvOptions"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Options"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionManager"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#NewSessionCtx":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtx","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"BackupCtx","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupCtx","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtxWithTimeout","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#NewSessionCtxWithTimeout":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtxWithTimeout","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtx","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Disable","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#NewSessionManager":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionManager","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"newShard","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.startGC","Line":14},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard","Line":4}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager","Line":8}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#NewSessionMap":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionMap","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionMapWithTimeout","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#NewSessionMapWithTimeout":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionMapWithTimeout","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionMap","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Disable","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#Pprof_Label_Session_ID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Pprof_Label_Session_ID","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"","Name":"untyped string"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"clearSessionID","Line":5},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"transmitSessionID","Line":9},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getSessionID","Line":5}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SESSION_CONFIG_KEY":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SESSION_CONFIG_KEY","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"","Name":"untyped string"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"checkEnvOptions","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#Session":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GoSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GC","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.WithValue"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GetSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Load"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.WithValue"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"newShard","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.BindSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Store"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#Session.Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.Get","Type":"FUNC"},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#Session.IsValid":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","Type":"FUNC","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GC","Line":11}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#Session.WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.WithValue","Type":"FUNC"},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionCtx":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"RecoverCtxOnDemands","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtx"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Get"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Disable"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.IsValid"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.WithValue","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtxWithTimeout"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Export"}],"Implements":[{"Kind":"Implement","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionCtx.Disable":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Disable","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtxWithTimeout","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionCtx.Export":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Export","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"RecoverCtxOnDemands","Line":12},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","Line":12}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionCtx.Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Get","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionCtx.IsValid":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.IsValid","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionCtx.WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.WithValue","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GC","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"transmitSessionID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GetSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getSessionID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Load"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"newShard","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.UnbindSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.BindSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Delete"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Store"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionManager":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager","Type":"TYPE","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","Line":4}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GetDefaultManager"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GC"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Close"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GetSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.UnbindSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Options"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionManager"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.BindSession"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.startGC"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionManager.BindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.BindSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"transmitSessionID","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Store","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionManager.Close":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Close","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager","Line":6}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionManager.GC":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GC","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session.IsValid","Line":11},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.startGC","Line":7}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionManager.GetSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GetSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getSessionID","Line":10},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Load","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionManager.Options":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.Options","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionManager.UnbindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.UnbindSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"clearSessionID","Line":9},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Load","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Delete","Line":5},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionManager.startGC":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.startGC","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GC","Line":7},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionManager","Line":14}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionMap":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.WithValue"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Get"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionMap"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Export"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Disable"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.IsValid"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionMapWithTimeout"}],"Implements":[{"Kind":"Implement","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionMap.Disable":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Disable","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionMapWithTimeout","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionMap.Export":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Export","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionMap.Get":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.Get","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionMap.IsValid":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.IsValid","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#SessionMap.WithValue":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap.WithValue","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionMap"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#UnbindSession":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"goID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.UnbindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"ClearCtx","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"ClearCtx","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GoSession","Line":6}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#checkEnvOptions":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"checkEnvOptions","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SESSION_CONFIG_KEY","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#clearSessionID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"clearSessionID","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getPproLabel","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"setPprofLabel","Line":14},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"labelMap","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Pprof_Label_Session_ID","Line":5}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.UnbindSession","Line":9}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#defaultManagerObj":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerObj","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GetDefaultManager","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager","Line":5}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#defaultManagerOnce":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultManagerOnce","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"sync","Name":"Once"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#defaultShardCap":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultShardCap","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"","Name":"int"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"newShard","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#getPproLabel":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getPproLabel","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"labelMap"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"clearSessionID","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"transmitSessionID","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getSessionID","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#getSessionID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getSessionID","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getPproLabel","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Pprof_Label_Session_ID","Line":5}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GetSession","Line":10}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#goID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"goID","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/runtimex@v0.1.1","PkgPath":"github.com/cloudwego/runtimex","Name":"GID","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#labelMap":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"labelMap","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"clearSessionID","Line":8},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"transmitSessionID","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"setPprofLabel"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getPproLabel"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#newShard":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"newShard","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"defaultShardCap","Line":2}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionManager","Line":6}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#setPprofLabel":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"setPprofLabel","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"labelMap"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"clearSessionID","Line":14},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"transmitSessionID","Line":16}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#shard":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard","Type":"TYPE","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session","Line":2}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Load"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"newShard"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionManager","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Delete"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Store"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#shard.Delete":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Delete","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.UnbindSession","Line":5}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#shard.Load":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Load","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.GetSession","Line":2},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.UnbindSession","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#shard.Store":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard.Store","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Session"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"shard"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.BindSession","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession#transmitSessionID":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"transmitSessionID","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionID"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"getPproLabel","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"setPprofLabel","Line":16},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"labelMap","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"Pprof_Label_Session_ID","Line":9}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionManager.BindSession","Line":6}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#BackupCtx":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupCtx","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GetDefaultManager","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtx","Line":4}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#BackupHandler":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupHandler","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#ClearCtx":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"ClearCtx","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#CtxKeyTest1":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"CtxKeyTest1","Type":"VAR","Dependencies":[{"Kind":"Dependency","ModPath":"","PkgPath":"github.com/cloudwego/localsession/backup","Name":"CtxKeyTestType"}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#CtxKeyTestType":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"CtxKeyTestType","Type":"TYPE"},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#DefaultOptions":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"DefaultOptions","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"DefaultManagerOptions","Line":3},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"Options","Line":1}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestMain","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#Init":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"Init","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager","Line":2}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestMain","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#Options":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"Options","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"DefaultOptions","Line":1}],"Inherits":[{"Kind":"Inherit","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#RecoverCtxOnDemands":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"CountPersistentValues","Line":22},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"GetAllPersistentValues","Line":25},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"RangePersistentValues","Line":30},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithPersistentValues","Line":43},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Export","Line":12},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","Line":8}],"References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","Line":44}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#TestMain":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestMain","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"DefaultOptions","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"Init","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#TestRecoverCtxOndemands":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupCtx","Line":2},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithPersistentValues","Line":2},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithValue","Line":28},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithPersistentValue","Line":28},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"RecoverCtxOnDemands","Line":44},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"GetPersistentValue","Line":48},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"BackupHandler","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"args","Line":22},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"CtxKeyTest1","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]#args":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"args","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup [github.com/cloudwego/localsession/backup.test]","Name":"TestRecoverCtxOndemands","Line":22}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup#BackupCtx":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"BackupCtx","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"GetDefaultManager","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"BindSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"NewSessionCtx","Line":4}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup#BackupHandler":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"BackupHandler","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"RecoverCtxOnDemands"}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup#ClearCtx":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"ClearCtx","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"UnbindSession","Line":1}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup#DefaultOptions":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"DefaultOptions","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Options"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"DefaultManagerOptions","Line":3}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup#Init":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Init","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Options"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"InitDefaultManager","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup#Options":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Options","Type":"TYPE","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"DefaultOptions"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"Init"}],"Inherits":[{"Kind":"Inherit","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"ManagerOptions","Line":2}]},"github.com/cloudwego/localsession?github.com/cloudwego/localsession/backup#RecoverCtxOnDemands":{"ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"RecoverCtxOnDemands","Type":"FUNC","Dependencies":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession/backup","Name":"BackupHandler"},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"CurSession","Line":4},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"CountPersistentValues","Line":22},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"GetAllPersistentValues","Line":25},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"RangePersistentValues","Line":30},{"Kind":"Dependency","ModPath":"github.com/bytedance/gopkg@v0.0.0-20230728082804-614d0af6619b","PkgPath":"github.com/bytedance/gopkg/cloud/metainfo","Name":"WithPersistentValues","Line":43},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx.Export","Line":12},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"SessionCtx","Line":8}]},"github.com/cloudwego/runtimex@v0.1.1?github.com/cloudwego/runtimex#GID":{"ModPath":"github.com/cloudwego/runtimex@v0.1.1","PkgPath":"github.com/cloudwego/runtimex","Name":"GID","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"goID","Line":1},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession","Name":"goID","Line":1}]},"github.com/stretchr/testify@v1.7.0?github.com/stretchr/testify/require#Equal":{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Equal","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestResetDefaultManager","Line":12},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":19},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":20},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionManager_GC","Line":21},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":23}]},"github.com/stretchr/testify@v1.7.0?github.com/stretchr/testify/require#False":{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"False","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionTimeout","Line":6},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionMap","Line":41},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":42}]},"github.com/stretchr/testify@v1.7.0?github.com/stretchr/testify/require#Nil":{"ModPath":"github.com/stretchr/testify@v1.7.0","PkgPath":"github.com/stretchr/testify/require","Name":"Nil","Type":"UNKNOWN","References":[{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestSessionCtx","Line":27},{"Kind":"Dependency","ModPath":"github.com/cloudwego/localsession","PkgPath":"github.com/cloudwego/localsession [github.com/cloudwego/localsession.test]","Name":"TestTransparentTransmitAsync","Line":32}]}}} \ No newline at end of file