aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/mirum-server/server.go')
-rw-r--r--cmd/mirum-server/server.go20+9 −11
1 files changed, 9 insertions, 11 deletions
diff --git a/cmd/mirum-server/server.go b/cmd/mirum-server/server.go
index 4ad6113..5b4bbf0 100644
--- a/cmd/mirum-server/server.go
+++ b/cmd/mirum-server/server.go
@@ -1,4 +1,4 @@
-// SPDX-FileCopyrightText: 2026 Nikolay Govorov
+// Copyright (c) 2026 Nikolay Govorov
// SPDX-License-Identifier: AGPL-3.0-or-later
package main
@@ -30,6 +30,7 @@ type server struct {
// Close releases resources owned by the server. Call exactly once, after
// all HTTP servers have finished Shutdown.
func (s *server) Close() {
+ close(s.queue)
s.db.Close()
}
@@ -50,27 +51,24 @@ func (s *server) PurgeSessions(ctx context.Context) {
}
}
-func (s *server) enqueue(ctx context.Context, ev *forges.PushEvent) (string, error) {
- id := fmt.Sprintf("task-%d", s.taskCounter.Add(1))
+func (s *server) enqueue(ev *forges.PushEvent) string {
+ s.taskCounter.Add(1)
+ id := fmt.Sprintf("task-%d", s.taskCounter.Load())
slog.Info("push", "repo", ev.Owner+"/"+ev.Repo, "branch", ev.Branch, "sha", ev.SHA[:8], "task", id)
s.tasks.Store(id, ev)
- _ = s.forge.SetStatus(ctx, ev, forges.StatusPending, "Queued")
+ _ = s.forge.SetStatus(context.Background(), ev, forges.StatusPending, "Queued")
- select {
- case s.queue <- &wirepb.Task{
+ s.queue <- &wirepb.Task{
Id: id,
CloneUrl: s.forge.AuthURL(ev.CloneURL),
Branch: ev.Branch,
Sha: ev.SHA,
RepoFullName: ev.Owner + "/" + ev.Repo,
- }:
- return id, nil
- case <-ctx.Done():
- s.tasks.Delete(id)
- return "", ctx.Err()
}
+
+ return id
}
func (s *server) complete(ctx context.Context, taskID string, success bool, errMsg string) error {