fix ctx lifetime

This commit is contained in:
wjqserver 2025-06-06 21:43:16 +08:00
parent 0d6109f6da
commit 81fd3902cb

View file

@ -331,6 +331,7 @@ func (engine *Engine) ServeHTTP(w http.ResponseWriter, req *http.Request) {
func (engine *Engine) handleRequest(c *Context) { func (engine *Engine) handleRequest(c *Context) {
httpMethod := c.Request.Method httpMethod := c.Request.Method
requestPath := c.Request.URL.Path requestPath := c.Request.URL.Path
defer engine.pool.Put(c)
// 查找对应的路由树的根节点 // 查找对应的路由树的根节点
rootNode := engine.methodTrees.get(httpMethod) // 这里获取到的 rootNode 已经是 *node 类型 rootNode := engine.methodTrees.get(httpMethod) // 这里获取到的 rootNode 已经是 *node 类型
@ -346,7 +347,7 @@ func (engine *Engine) handleRequest(c *Context) {
//c.handlers = engine.combineHandlers(engine.globalHandlers, value.handlers) // 组合全局中间件和路由处理函数 //c.handlers = engine.combineHandlers(engine.globalHandlers, value.handlers) // 组合全局中间件和路由处理函数
c.handlers = value.handlers c.handlers = value.handlers
c.Next() // 执行处理函数链 c.Next() // 执行处理函数链
c.Writer.Flush() // 确保所有缓冲的响应数据被发送 //c.Writer.Flush() // 确保所有缓冲的响应数据被发送
return return
} }
@ -401,7 +402,7 @@ func (engine *Engine) handleRequest(c *Context) {
c.handlers = handlers c.handlers = handlers
c.Next() // 执行处理函数链 c.Next() // 执行处理函数链
c.Writer.Flush() // 确保所有缓冲的响应数据被发送 //c.Writer.Flush() // 确保所有缓冲的响应数据被发送
} }
// UnMatchFS HandleFunc // UnMatchFS HandleFunc