diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2024-07-04 18:50:36 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2024-07-08 07:01:24 +0000 |
| commit | 5a7005591465dd7ea34834918299fac3bfe508f6 (patch) | |
| tree | 8376a98c3f3361b6e934cfcb88e3624adb5abd1d /pkg/rpcserver | |
| parent | b1cb3770ed1055dd3ec9a74ba287139fde14789e (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.go | 2 | ||||
| -rw-r--r-- | pkg/rpcserver/rpcserver.go | 7 |
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) |
