File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -171,16 +171,24 @@ func (m *manager) Fire(event Event) {
171171 m .fire (event )
172172}
173173
174+ var anyType = typeOf (any (nil ))
175+
174176func (m * manager ) fire (event Event ) {
175177 eventType := typeOf (event )
178+
176179 m .mu .RLock ()
177180 list := m .subscribers [eventType ]
181+ anyList := m .subscribers [anyType ]
178182 m .mu .RUnlock ()
179183
184+ m .fireSubscribers (event , anyList )
185+ m .fireSubscribers (event , list )
186+ }
187+
188+ func (m * manager ) fireSubscribers (event Event , list * subscriberList ) {
180189 if list == nil {
181190 return
182191 }
183-
184192 list .wg .Add (1 )
185193 defer list .wg .Done ()
186194
Original file line number Diff line number Diff line change @@ -42,9 +42,15 @@ func TestPriorityAndCorrectType(t *testing.T) {
4242 noPtr = true
4343 })
4444
45+ var calledAny int
46+ m .Subscribe (any (nil ), 10 , func (e Event ) {
47+ calledAny ++
48+ })
49+
4550 e := & myEvent {s : "_" }
4651 m .Fire (e )
4752 require .False (t , noPtr )
4853 require .Equal (t , "_abc" , e .s )
4954 require .True (t , m .HasSubscriber (& myEvent {}))
55+ require .Equal (t , calledAny , 1 )
5056}
You can’t perform that action at this time.
0 commit comments