physical-lock: Remove server.Stop.

Change-Id: Id8b0d8b193577282d172b017931fff53151995e4
MultiPart: 4/4
diff --git a/go/src/v.io/x/lock/lock/main.go b/go/src/v.io/x/lock/lock/main.go
index c523429..2af5173 100644
--- a/go/src/v.io/x/lock/lock/main.go
+++ b/go/src/v.io/x/lock/lock/main.go
@@ -360,11 +360,15 @@
 		env:    env,
 		notify: make(chan error),
 	}
+	ctx, cancel := context.WithCancel(ctx)
 	_, server, err := v23.WithNewServer(ctx, recvKeySuffix, service, security.AllowEveryone())
 	if err != nil {
 		return fmt.Errorf("failed to create server to receive keys: %v", err)
 	}
-	defer server.Stop()
+	defer func() {
+		cancel()
+		<-server.Closed()
+	}()
 	fmt.Println("Waiting for keys")
 	return <-service.notify
 }
diff --git a/go/src/v.io/x/lock/lockd/starter.go b/go/src/v.io/x/lock/lockd/starter.go
index 5985f77..ca89aa9 100644
--- a/go/src/v.io/x/lock/lockd/starter.go
+++ b/go/src/v.io/x/lock/lockd/starter.go
@@ -58,14 +58,16 @@
 		return nil, nil, err
 	}
 	claimed := make(chan struct{})
+	ctx, cancel := context.WithCancel(ctx)
 	_, server, err := v23.WithNewServer(ctx, lockObjectName(ctx), newUnclaimedLock(claimed, configDir), security.AllowEveryone())
 	if err != nil {
 		stopMT()
 		return nil, nil, err
 	}
 	stopUnclaimedLock := func() {
+		cancel()
 		vlog.Infof("Stopping unclaimed lock server...")
-		server.Stop()
+		<-server.Closed()
 		vlog.Infof("Stopped unclaimed lock server...")
 		stopMT()
 	}
@@ -89,14 +91,16 @@
 		stopMT()
 		return nil, err
 	}
+	ctx, cancel := context.WithCancel(ctx)
 	_, server, err := v23.WithNewServer(ctx, lockObjectName(ctx), newLock(), security.DefaultAuthorizer())
 	if err != nil {
 		stopMT()
 		return nil, err
 	}
 	stopLock := func() {
+		cancel()
 		vlog.Infof("Stopping lock server...")
-		server.Stop()
+		<-server.Closed()
 		vlog.Infof("Stopped lock server...")
 		stopMT()
 	}