|
@@ -2,6 +2,8 @@
|
|
|
package mod_serv_http
|
|
package mod_serv_http
|
|
|
|
|
|
|
|
import (
|
|
import (
|
|
|
|
|
+ "sync"
|
|
|
|
|
+
|
|
|
"gitp78su.ipnodns.ru/svi/kern/krn/kmodule"
|
|
"gitp78su.ipnodns.ru/svi/kern/krn/kmodule"
|
|
|
"gitp78su.ipnodns.ru/svi/kern/krn/kserv_http"
|
|
"gitp78su.ipnodns.ru/svi/kern/krn/kserv_http"
|
|
|
. "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
|
|
. "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
|
|
@@ -18,8 +20,18 @@ type ModuleServHttp struct {
|
|
|
log ILogBuf
|
|
log ILogBuf
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// NewModuleServHttp -- возвращает новый модуль HTTP-сервера
|
|
|
|
|
-func NewModuleServHttp() *ModuleServHttp {
|
|
|
|
|
|
|
+var (
|
|
|
|
|
+ mod *ModuleServHttp
|
|
|
|
|
+ block sync.RWMutex
|
|
|
|
|
+)
|
|
|
|
|
+
|
|
|
|
|
+// GetModuleServHttp -- возвращает новый модуль HTTP-сервера
|
|
|
|
|
+func GetModuleServHttp() *ModuleServHttp {
|
|
|
|
|
+ block.Lock()
|
|
|
|
|
+ defer block.Unlock()
|
|
|
|
|
+ if mod != nil {
|
|
|
|
|
+ return mod
|
|
|
|
|
+ }
|
|
|
sf := &ModuleServHttp{
|
|
sf := &ModuleServHttp{
|
|
|
IKernelModule: kmodule.NewKernelModule("kServHttp"),
|
|
IKernelModule: kmodule.NewKernelModule("kServHttp"),
|
|
|
kServHttp: kserv_http.GetKernelServHttp(),
|
|
kServHttp: kserv_http.GetKernelServHttp(),
|
|
@@ -30,6 +42,7 @@ func NewModuleServHttp() *ModuleServHttp {
|
|
|
_ = page_module.GetPageModule()
|
|
_ = page_module.GetPageModule()
|
|
|
|
|
|
|
|
_ = http_api.NewHttpApi()
|
|
_ = http_api.NewHttpApi()
|
|
|
|
|
+ mod = sf
|
|
|
return sf
|
|
return sf
|
|
|
}
|
|
}
|
|
|
|
|
|