go内存被自动释放掉了?
按着教程上面写例子:
https://github.com/astaxie/build-web-application-with-golang/blob/master/ebook/06.3.md
package main
import (
"fmt"
"log"
"net/http"
"zlaravel"
_ "zlaravel/session"
)
const (
ROOT_DIR = "../"
)
func login(res http.ResponseWriter, req *http.Request) {
fmt.Fprintf(res, "sei")
fmt.Printf("%#v\n", globalSessions)//输出2
return
session := globalSessions.SessionStart(res, req)
if value := req.FormValue("session"); value != "" {
session.Set("sei", "fuck")
}
name := session.Get("sei").(string)
fmt.Fprintf(res, name)
}
var globalSessions *zlaravel.Manage
func main() {
http.HandleFunc("/", login)
err := http.ListenAndServe(":8000", http.DefaultServeMux)
if err != nil {
log.Fatalln("error http.ListenAndServe create:", err)
}
fmt.Println("exit main process")//此处并没有运行到,应该是主线程没有退出
}
func init() {
globalSessions, _ := zlaravel.NewManage(zlaravel.ProviderTypeMemcache, "phpsessionid", 60)
fmt.Printf("%#v\n", globalSessions)//输出1.
go globalSessions.GC()
}
输出内容为:
1. &zlaravel.Manage{cookieName:"phpsessionid", provide:(*session.Provider)(0x8090b0), maxLifeTime:60, lock:sync.Mutex{state:0, sema:0x0}}
2. (*zlaravel.Manage)(nil)
现在输出1,应该是正常.但是到了输出2就出问题了.内存被释放了?
而且主线程没有退出阿?
目前平台是:windows_amd64
请高手帮我解决一下.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
原来是我写错了.
globalSessions, _ := zlaravel.NewManage(zlaravel.ProviderTypeMemcache, "phpsessionid", 60)
多了一个":"号,变成局部变量了