aboutsummaryrefslogtreecommitdiffstats
path: root/event/event_test.go
diff options
context:
space:
mode:
authorJeffrey Wilcke <geffobscura@gmail.com>2016-05-12 23:57:45 +0800
committerJeffrey Wilcke <geffobscura@gmail.com>2016-05-13 02:53:31 +0800
commit7e5c49cafa191760c2657b8d743e7ecfc59e9e78 (patch)
treeb5072838be6b940216778142ee390c5e6e031382 /event/event_test.go
parentefcfa2209babc5b23dde75592048194238c1e1d5 (diff)
downloadgo-tangerine-7e5c49cafa191760c2657b8d743e7ecfc59e9e78.tar
go-tangerine-7e5c49cafa191760c2657b8d743e7ecfc59e9e78.tar.gz
go-tangerine-7e5c49cafa191760c2657b8d743e7ecfc59e9e78.tar.bz2
go-tangerine-7e5c49cafa191760c2657b8d743e7ecfc59e9e78.tar.lz
go-tangerine-7e5c49cafa191760c2657b8d743e7ecfc59e9e78.tar.xz
go-tangerine-7e5c49cafa191760c2657b8d743e7ecfc59e9e78.tar.zst
go-tangerine-7e5c49cafa191760c2657b8d743e7ecfc59e9e78.zip
[release/1.4.4] 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. (cherry picked from commit 7c1f74713e273d1e4f1982466eb6fd96e55e8c4d)
Diffstat (limited to 'event/event_test.go')
-rw-r--r--event/event_test.go8
1 files changed, 8 insertions, 0 deletions
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()