Changeset 104 in code for trunk/downstream.go
- Timestamp:
- Mar 16, 2020, 1:05:48 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/downstream.go
r103 r104 48 48 }} 49 49 50 type consumptionstruct {50 type ringMessage struct { 51 51 consumer *RingConsumer 52 52 upstreamConn *upstreamConn … … 59 59 logger Logger 60 60 outgoing chan *irc.Message 61 consumptions chan consumption61 ringMessages chan ringMessage 62 62 closed chan struct{} 63 63 … … 79 79 logger: &prefixLogger{srv.Logger, fmt.Sprintf("downstream %q: ", netConn.RemoteAddr())}, 80 80 outgoing: make(chan *irc.Message, 64), 81 consumptions: make(chan consumption),81 ringMessages: make(chan ringMessage), 82 82 closed: make(chan struct{}), 83 83 } … … 223 223 } 224 224 err = dc.irc.WriteMessage(msg) 225 case consumption := <-dc.consumptions:226 consumer, uc := consumption.consumer, consumption.upstreamConn225 case ringMessage := <-dc.ringMessages: 226 consumer, uc := ringMessage.consumer, ringMessage.upstreamConn 227 227 for { 228 228 msg := consumer.Peek() … … 428 428 429 429 dc.forEachUpstream(func(uc *upstreamConn) { 430 // TODO: fix races accessing upstream connection data431 430 for _, ch := range uc.channels { 432 431 if ch.complete { … … 451 450 select { 452 451 case <-ch: 453 dc. consumptions <- consumption{consumer, uc}452 dc.ringMessages <- ringMessage{consumer, uc} 454 453 case <-dc.closed: 455 454 closed = true
Note:
See TracChangeset
for help on using the changeset viewer.