Changeset 166 in code
Legend:
- Unmodified
- Added
- Removed
-
trunk/downstream.go
r165 r166 661 661 dc.logger.Printf("registration complete for user %q", dc.username) 662 662 663 firstDownstream := dc.user.addDownstream(dc) 663 dc.user.lock.Lock() 664 firstDownstream := len(dc.user.downstreamConns) == 0 665 dc.user.lock.Unlock() 664 666 665 667 dc.SendMessage(&irc.Message{ -
trunk/server.go
r165 r166 120 120 dc.logger.Print(err) 121 121 } else { 122 dc.user.events <- eventDownstreamConnected{dc} 122 123 if err := dc.readMessages(dc.user.events); err != nil { 123 124 dc.logger.Print(err) -
trunk/user.go
r165 r166 18 18 msg *irc.Message 19 19 dc *downstreamConn 20 } 21 22 type eventDownstreamConnected struct { 23 dc *downstreamConn 20 24 } 21 25 … … 161 165 uc.logger.Printf("failed to handle message %q: %v", msg, err) 162 166 } 167 case eventDownstreamConnected: 168 dc := e.dc 169 u.lock.Lock() 170 u.downstreamConns = append(u.downstreamConns, dc) 171 u.lock.Unlock() 163 172 case eventDownstreamMessage: 164 173 msg, dc := e.msg, e.dc … … 181 190 } 182 191 183 func (u *user) addDownstream(dc *downstreamConn) (first bool) {184 u.lock.Lock()185 first = len(dc.user.downstreamConns) == 0186 u.downstreamConns = append(u.downstreamConns, dc)187 u.lock.Unlock()188 return first189 }190 191 192 func (u *user) removeDownstream(dc *downstreamConn) { 192 193 u.lock.Lock()
Note:
See TracChangeset
for help on using the changeset viewer.