diff options
author | Jeffrey Wilcke <geffobscura@gmail.com> | 2016-05-12 23:57:45 +0800 |
---|---|---|
committer | Jeffrey Wilcke <geffobscura@gmail.com> | 2016-05-13 02:53:31 +0800 |
commit | 7e5c49cafa191760c2657b8d743e7ecfc59e9e78 (patch) | |
tree | b5072838be6b940216778142ee390c5e6e031382 /event/event_test.go | |
parent | efcfa2209babc5b23dde75592048194238c1e1d5 (diff) | |
download | go-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.go | 8 |
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() |