Merge pull request #3683 from aaronlehmann/dont-recreate-router
Do not recreate mux router for each incoming requestmaster
						commit
						26163d8256
					
				|  | @ -1,6 +1,10 @@ | ||||||
| package v2 | package v2 | ||||||
| 
 | 
 | ||||||
| import "github.com/gorilla/mux" | import ( | ||||||
|  | 	"sync" | ||||||
|  | 
 | ||||||
|  | 	"github.com/gorilla/mux" | ||||||
|  | ) | ||||||
| 
 | 
 | ||||||
| // The following are definitions of the name under which all V2 routes are
 | // The following are definitions of the name under which all V2 routes are
 | ||||||
| // registered. These symbols can be used to look up a route based on the name.
 | // registered. These symbols can be used to look up a route based on the name.
 | ||||||
|  | @ -14,11 +18,19 @@ const ( | ||||||
| 	RouteNameCatalog         = "catalog" | 	RouteNameCatalog         = "catalog" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | var ( | ||||||
|  | 	baseRouter           *mux.Router | ||||||
|  | 	createBaseRouterOnce sync.Once | ||||||
|  | ) | ||||||
|  | 
 | ||||||
| // Router builds a gorilla router with named routes for the various API
 | // Router builds a gorilla router with named routes for the various API
 | ||||||
| // methods. This can be used directly by both server implementations and
 | // methods. This can be used directly by both server implementations and
 | ||||||
| // clients.
 | // clients.
 | ||||||
| func Router() *mux.Router { | func Router() *mux.Router { | ||||||
| 	return RouterWithPrefix("") | 	createBaseRouterOnce.Do(func() { | ||||||
|  | 		baseRouter = RouterWithPrefix("") | ||||||
|  | 	}) | ||||||
|  | 	return baseRouter | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // RouterWithPrefix builds a gorilla router with a configured prefix
 | // RouterWithPrefix builds a gorilla router with a configured prefix
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue