go-ethereum/event
Daniel Liu 173214524f
event: fix Resubscribe deadlock when unsubscribing after inner sub ends #28359 (#1551)
A goroutine is used to manage the lifetime of subscriptions managed by
resubscriptions. When the subscription ends with no error, the resub
goroutine ends as well. However, the resub goroutine needs to live
long enough to read from the unsub channel. Otheriwse, an Unsubscribe
call deadlocks when writing to the unsub channel.

This is fixed by adding a buffer to the unsub channel.

Co-authored-by: Inphi <mlaw2501@gmail.com>
2025-09-24 07:48:23 +08:00
..
filter all: fix staticcheck warning ST1006: don't use generic name self 2024-10-25 21:30:54 +08:00
event.go event: initialize maps with known size #27233 (#1550) 2025-09-24 07:47:54 +08:00
event_test.go all: remove deprecated uses of math.rand #26710 (#1549) 2025-09-22 20:42:14 +08:00
example_feed_test.go new EVM Upgrade 2021-09-21 16:53:46 +05:30
example_scope_test.go new EVM Upgrade 2021-09-21 16:53:46 +05:30
example_subscription_test.go new EVM Upgrade 2021-09-21 16:53:46 +05:30
example_test.go core, eth, event, miner, xeth: fix event post / subscription race 2015-10-12 16:22:03 +03:00
feed.go event: include Feed type fixation logic in f.init (#27249) 2024-08-30 12:42:55 +08:00
feed_test.go event: remove redundant conversions #21903 (#1545) 2025-09-21 19:40:16 +08:00
feedof.go event: add FeedOf[T] #26310 #26803 (#1547) 2025-09-21 19:41:24 +08:00
feedof_test.go event: add FeedOf[T] #26310 #26803 (#1547) 2025-09-21 19:41:24 +08:00
subscription.go event: fix Resubscribe deadlock when unsubscribing after inner sub ends #28359 (#1551) 2025-09-24 07:48:23 +08:00
subscription_test.go event: fix Resubscribe deadlock when unsubscribing after inner sub ends #28359 (#1551) 2025-09-24 07:48:23 +08:00