summaryrefslogtreecommitdiffhomepage
path: root/pkg/p9/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/p9/server.go')
-rw-r--r--pkg/p9/server.go4
1 files changed, 3 insertions, 1 deletions
diff --git a/pkg/p9/server.go b/pkg/p9/server.go
index b2a86d8fa..f377a6557 100644
--- a/pkg/p9/server.go
+++ b/pkg/p9/server.go
@@ -395,7 +395,7 @@ func (cs *connState) handleRequest() {
}
// Receive a message.
- tag, m, err := recv(cs.conn, messageSize, messageByType)
+ tag, m, err := recv(cs.conn, messageSize, msgRegistry.get)
if errSocket, ok := err.(ErrSocket); ok {
// Connection problem; stop serving.
cs.recvDone <- errSocket.error
@@ -458,6 +458,8 @@ func (cs *connState) handleRequest() {
// Produce an ENOSYS error.
r = newErr(syscall.ENOSYS)
}
+ msgRegistry.put(m)
+ m = nil // 'm' should not be touched after this point.
}
func (cs *connState) handleRequests() {