-
Notifications
You must be signed in to change notification settings - Fork 16
Description
I believe that this is because there is a race condition at
Line 112 in 79e4f35
| } |
and
Line 150 in 79e4f35
| } |
I believe that what is happening is that sometimes go routines that were scheduled later than other goroutines by these lines for a given channel get called first.
I see three ways to approach fixing this:
Option 1 is to simply bite the bullet and call out to each member's channel synchronously.
Option 2 is to start using a logical clock for events and passing those values through to the consumer
Option 3 also involves a logical clock, but it hides it from consumers by having an intermediate goroutine/channel pair running for each member that handles ensuring that the events are properly serialized