changes based on feedback

This commit is contained in:
Sean Braithwaite
2019-09-13 18:36:02 -04:00
parent e7ee314c99
commit fbede85e20
2 changed files with 6 additions and 3 deletions

View File

@@ -73,11 +73,12 @@ func (r *Reactor) Start() {
}()
}
// Would it be possible here to provide some kind of type safety for the types
// of events that each routine can produce and consume?
func (r *Reactor) demux() {
for {
select {
case event := <-r.events:
// XXX: check for backpressure
r.scheduler.trySend(event)
r.processor.trySend(event)
@@ -85,9 +86,9 @@ func (r *Reactor) demux() {
r.logger.Info("demuxing stopped")
return
case event := <-r.scheduler.next():
r.events <- event
r.processor.trySend(event)
case event := <-r.processor.next():
r.events <- event
r.scheduler.trySend(event)
case err := <-r.scheduler.final():
r.logger.Info(fmt.Sprintf("scheduler final %s", err))
case err := <-r.processor.final():

View File

@@ -92,6 +92,8 @@ func (rt *Routine) start() {
}
}
// XXX: rename send
// XXX: look into returning OpError in the net package
func (rt *Routine) trySend(event Event) bool {
rt.logger.Info(fmt.Sprintf("%s: sending %+v", rt.name, event))
if !rt.isRunning() {