summaryrefslogtreecommitdiffhomepage
path: root/pkg/urpc/urpc.go
diff options
context:
space:
mode:
authorAdin Scannell <ascannell@google.com>2020-12-29 16:21:27 -0800
committergVisor bot <gvisor-bot@google.com>2020-12-29 16:23:01 -0800
commit85c1c3ed4b8d32c499c53917765acef20cb16248 (patch)
tree570a3b4a57b970d2fd05b6767f9b1aa0fe6bc393 /pkg/urpc/urpc.go
parent91c05c609e4dbdc9790037e2dea3e55e784e4da5 (diff)
Make profiling commands synchronous.
This allows for a model of profiling when you can start collection, and it will terminate when the sandbox terminates. Without this synchronous call, it is effectively impossible to collect length blocking and mutex profiles. PiperOrigin-RevId: 349483418
Diffstat (limited to 'pkg/urpc/urpc.go')
-rw-r--r--pkg/urpc/urpc.go8
1 files changed, 3 insertions, 5 deletions
diff --git a/pkg/urpc/urpc.go b/pkg/urpc/urpc.go
index 13b2ea314..dfd23032c 100644
--- a/pkg/urpc/urpc.go
+++ b/pkg/urpc/urpc.go
@@ -283,12 +283,10 @@ func (s *Server) handleOne(client *unet.Socket) error {
// Client is dead.
return err
}
+ if s.afterRPCCallback != nil {
+ defer s.afterRPCCallback()
+ }
- defer func() {
- if s.afterRPCCallback != nil {
- s.afterRPCCallback()
- }
- }()
// Explicitly close all these files after the call.
//
// This is also explicitly a reference to the files after the call,