From 7c1f74713e273d1e4f1982466eb6fd96e55e8c4d Mon Sep 17 00:00:00 2001 From: Jeffrey Wilcke Date: Thu, 12 May 2016 17:57:45 +0200 Subject: event: fixed subscribtions to stopped event mux This fixes an issue where the following would lead to a panic due to a channel being closed twice: * Start mux * Stop mux * Sub to mux * Unsub This is fixed by setting the subscriptions status to closed resulting in the Unsubscribe to ignore the request when called. --- event/event_test.go | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'event/event_test.go') diff --git a/event/event_test.go b/event/event_test.go index 323cfea49..394029301 100644 --- a/event/event_test.go +++ b/event/event_test.go @@ -25,6 +25,14 @@ import ( type testEvent int +func TestSubCloseUnsub(t *testing.T) { + // the point of this test is **not** to panic + var mux TypeMux + mux.Stop() + sub := mux.Subscribe(int(0)) + sub.Unsubscribe() +} + func TestSub(t *testing.T) { mux := new(TypeMux) defer mux.Stop() -- cgit v1.2.3