From 766ff1edf7e9ca8e11a1b638a2770f149f5c56d4 Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Tue, 5 May 2015 10:41:52 +1000 Subject: [PATCH] Connection.recordCancelFunc --- connection.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/connection.go b/connection.go index 8b6ff52..ea9af03 100644 --- a/connection.go +++ b/connection.go @@ -96,7 +96,16 @@ func (c *Connection) log( // LOCKS_EXCLUDED(c.mu) func (c *Connection) recordCancelFunc( reqID bazilfuse.RequestID, - f func()) + f func()) { + c.mu.Lock() + defer c.mu.Unlock() + + if _, ok := c.cancelFuncs[reqID]; ok { + panic(fmt.Sprintf("Already have cancel func for request %v", reqID)) + } + + c.cancelFuncs[reqID] = f +} // Set up state for an op that is about to be returned to the user, given its // bazilfuse request ID.