aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/rpcserver
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2024-07-04 18:50:36 +0200
committerDmitry Vyukov <dvyukov@google.com>2024-07-08 07:01:24 +0000
commit5a7005591465dd7ea34834918299fac3bfe508f6 (patch)
tree8376a98c3f3361b6e934cfcb88e3624adb5abd1d /pkg/rpcserver
parentb1cb3770ed1055dd3ec9a74ba287139fde14789e (diff)
pkg/vminfo: accept context.Context
The object enables a graceful shutdown of machine checks.
Diffstat (limited to 'pkg/rpcserver')
-rw-r--r--pkg/rpcserver/local.go2
-rw-r--r--pkg/rpcserver/rpcserver.go7
2 files changed, 5 insertions, 4 deletions
diff --git a/pkg/rpcserver/local.go b/pkg/rpcserver/local.go
index 1831259f2..27c0aac4a 100644
--- a/pkg/rpcserver/local.go
+++ b/pkg/rpcserver/local.go
@@ -50,7 +50,7 @@ func RunLocal(cfg *LocalConfig) error {
cfg: cfg,
setupDone: make(chan bool),
}
- serv, err := newImpl(&cfg.Config, ctx)
+ serv, err := newImpl(cfg.Context, &cfg.Config, ctx)
if err != nil {
return err
}
diff --git a/pkg/rpcserver/rpcserver.go b/pkg/rpcserver/rpcserver.go
index d6a94094b..81563a077 100644
--- a/pkg/rpcserver/rpcserver.go
+++ b/pkg/rpcserver/rpcserver.go
@@ -5,6 +5,7 @@ package rpcserver
import (
"bytes"
+ "context"
"errors"
"fmt"
"maps"
@@ -105,7 +106,7 @@ func New(cfg *mgrconfig.Config, mgr Manager, debug bool) (*Server, error) {
if !cfg.Experimental.RemoteCover {
features &= ^flatrpc.FeatureExtraCoverage
}
- return newImpl(&Config{
+ return newImpl(context.Background(), &Config{
Config: vminfo.Config{
Target: cfg.Target,
Features: features,
@@ -130,9 +131,9 @@ func New(cfg *mgrconfig.Config, mgr Manager, debug bool) (*Server, error) {
}, mgr)
}
-func newImpl(cfg *Config, mgr Manager) (*Server, error) {
+func newImpl(ctx context.Context, cfg *Config, mgr Manager) (*Server, error) {
cfg.Procs = min(cfg.Procs, prog.MaxPids)
- checker := vminfo.New(&cfg.Config)
+ checker := vminfo.New(ctx, &cfg.Config)
baseSource := queue.DynamicSource(checker)
// Note that we use VMArch, rather than Arch. We need the kernel address ranges and bitness.
sysTarget := targets.Get(cfg.Target.OS, cfg.VMArch)