1
0
mirror of https://github.com/labstack/echo.git synced 2025-05-13 22:06:36 +02:00
This commit is contained in:
Vishal Rana 2017-01-25 20:44:08 -08:00
commit aa483fd34f

View File

@ -70,6 +70,7 @@ type (
Validator Validator Validator Validator
Renderer Renderer Renderer Renderer
AutoTLSManager autocert.Manager AutoTLSManager autocert.Manager
Mutex sync.RWMutex
Logger Logger Logger Logger
stdLogger *slog.Logger stdLogger *slog.Logger
colorer *color.Color colorer *color.Color
@ -497,7 +498,13 @@ func (e *Echo) ReleaseContext(c Context) {
// ServeHTTP implements `http.Handler` interface, which serves HTTP requests. // ServeHTTP implements `http.Handler` interface, which serves HTTP requests.
func (e *Echo) ServeHTTP(w http.ResponseWriter, r *http.Request) { func (e *Echo) ServeHTTP(w http.ResponseWriter, r *http.Request) {
// Acquire lock
e.Mutex.RLock()
defer e.Mutex.RUnlock()
// Acquire context
c := e.pool.Get().(*context) c := e.pool.Get().(*context)
defer e.pool.Put(c)
c.Reset(r, w) c.Reset(r, w)
// Middleware // Middleware
@ -521,8 +528,6 @@ func (e *Echo) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if err := h(c); err != nil { if err := h(c); err != nil {
e.HTTPErrorHandler(err, c) e.HTTPErrorHandler(err, c)
} }
e.pool.Put(c)
} }
// Start starts an HTTP server. // Start starts an HTTP server.