Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-pages.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2020-02-11 14:42:42 +0300
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2020-02-11 14:42:58 +0300
commit991e92068de6a48b25a80d5a0c9ae2900bf56e48 (patch)
treedfdffad5955d165b615878c1bb5adaa1213e02b6
parentbbb1316b0da97011d3a2e2dd0dbba282f8c1d19b (diff)
Memoize disk serving on a package level
-rw-r--r--internal/serving/disk/serving.go16
1 files changed, 11 insertions, 5 deletions
diff --git a/internal/serving/disk/serving.go b/internal/serving/disk/serving.go
index db184d3c..430aa95f 100644
--- a/internal/serving/disk/serving.go
+++ b/internal/serving/disk/serving.go
@@ -5,14 +5,16 @@ import (
"gitlab.com/gitlab-org/gitlab-pages/internal/serving"
)
-// Serving describes a disk access serving
-type Serving struct {
+var disk *Disk
+
+// Disk describes a disk access serving
+type Disk struct {
Reader
}
// ServeFileHTTP serves a file from disk and returns true. It returns false
// when a file could not been found.
-func (s *Serving) ServeFileHTTP(h serving.Handler) bool {
+func (s *Disk) ServeFileHTTP(h serving.Handler) bool {
if s.tryFile(h) == nil {
return true
}
@@ -21,7 +23,7 @@ func (s *Serving) ServeFileHTTP(h serving.Handler) bool {
}
// ServeNotFoundHTTP tries to read a custom 404 page
-func (s *Serving) ServeNotFoundHTTP(h serving.Handler) {
+func (s *Disk) ServeNotFoundHTTP(h serving.Handler) {
if s.tryNotFound(h) == nil {
return
}
@@ -33,5 +35,9 @@ func (s *Serving) ServeNotFoundHTTP(h serving.Handler) {
// New returns a serving instance that is capable of reading files
// from the disk
func New() serving.Serving {
- return &Serving{}
+ if disk == nil {
+ disk = &Disk{}
+ }
+
+ return disk
}