aboutsummaryrefslogtreecommitdiff
path: root/build/gobind-yggdrasil/monolith.go
diff options
context:
space:
mode:
Diffstat (limited to 'build/gobind-yggdrasil/monolith.go')
-rw-r--r--build/gobind-yggdrasil/monolith.go11
1 files changed, 9 insertions, 2 deletions
diff --git a/build/gobind-yggdrasil/monolith.go b/build/gobind-yggdrasil/monolith.go
index 3329485a..a2c9bcff 100644
--- a/build/gobind-yggdrasil/monolith.go
+++ b/build/gobind-yggdrasil/monolith.go
@@ -23,6 +23,7 @@ import (
"github.com/matrix-org/dendrite/setup"
"github.com/matrix-org/dendrite/setup/base"
"github.com/matrix-org/dendrite/setup/config"
+ "github.com/matrix-org/dendrite/setup/process"
"github.com/matrix-org/dendrite/userapi"
"github.com/matrix-org/gomatrixserverlib"
"github.com/sirupsen/logrus"
@@ -36,6 +37,7 @@ type DendriteMonolith struct {
StorageDirectory string
listener net.Listener
httpServer *http.Server
+ processContext *process.ProcessContext
}
func (m *DendriteMonolith) BaseURL() string {
@@ -87,6 +89,7 @@ func (m *DendriteMonolith) Start() {
cfg.Global.PrivateKey = ygg.PrivateKey()
cfg.Global.KeyID = gomatrixserverlib.KeyID(signing.KeyID)
cfg.Global.JetStream.StoragePath = config.Path(fmt.Sprintf("%s/", m.StorageDirectory))
+ cfg.Global.JetStream.InMemory = true
cfg.UserAPI.AccountDatabase.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/dendrite-p2p-account.db", m.StorageDirectory))
cfg.MediaAPI.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/dendrite-p2p-mediaapi.db", m.StorageDirectory))
cfg.SyncAPI.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/dendrite-p2p-syncapi.db", m.StorageDirectory))
@@ -101,6 +104,7 @@ func (m *DendriteMonolith) Start() {
}
base := base.NewBaseDendrite(cfg, "Monolith")
+ m.processContext = base.ProcessContext
defer base.Close() // nolint: errcheck
accountDB := base.CreateAccountsDB()
@@ -197,9 +201,12 @@ func (m *DendriteMonolith) Start() {
}()
}
-func (m *DendriteMonolith) Suspend() {
- m.logger.Info("Suspending monolith")
+func (m *DendriteMonolith) Stop() {
if err := m.httpServer.Close(); err != nil {
m.logger.Warn("Error stopping HTTP server:", err)
}
+ if m.processContext != nil {
+ m.processContext.ShutdownDendrite()
+ m.processContext.WaitForComponentsToFinish()
+ }
}