Legend:
- Unmodified
- Added
- Removed
-
trunk/downstream.go
r194 r203 740 740 var closed bool 741 741 select { 742 case <-ch: 742 case _, ok := <-ch: 743 if !ok { 744 closed = true 745 break 746 } 747 743 748 uc := net.upstream() 744 749 if uc == nil { -
trunk/ring.go
r138 r203 17 17 cur uint64 18 18 consumers []*RingConsumer 19 closed bool 19 20 } 20 21 … … 32 33 defer r.lock.Unlock() 33 34 35 if r.closed { 36 panic("soju: Ring.Produce called after Close") 37 } 38 34 39 i := int(r.cur % r.cap) 35 40 r.buffer[i] = msg … … 44 49 } 45 50 } 51 } 52 53 func (r *Ring) Close() { 54 r.lock.Lock() 55 defer r.lock.Unlock() 56 57 if r.closed { 58 panic("soju: Ring.Close called twice") 59 } 60 61 for _, rc := range r.consumers { 62 close(rc.ch) 63 } 64 65 r.closed = true 46 66 } 47 67 -
trunk/user.go
r202 r203 306 306 307 307 net.Stop() 308 net.ring.Close() 308 309 u.networks = append(u.networks[:i], u.networks[i+1:]...) 309 310 return nil
Note:
See TracChangeset
for help on using the changeset viewer.