Changeset 167 in code for trunk/user.go


Ignore:
Timestamp:
Mar 27, 2020, 4:55:03 PM (5 years ago)
Author:
contact
Message:

Add eventDownstreamDisconnected

This should remove the need for protecting user.downstreamConns with a
mutex.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/user.go

    r166 r167  
    2121
    2222type eventDownstreamConnected struct {
     23        dc *downstreamConn
     24}
     25
     26type eventDownstreamDisconnected struct {
    2327        dc *downstreamConn
    2428}
     
    170174                        u.downstreamConns = append(u.downstreamConns, dc)
    171175                        u.lock.Unlock()
     176                case eventDownstreamDisconnected:
     177                        dc := e.dc
     178                        u.lock.Lock()
     179                        for i := range u.downstreamConns {
     180                                if u.downstreamConns[i] == dc {
     181                                        u.downstreamConns = append(u.downstreamConns[:i], u.downstreamConns[i+1:]...)
     182                                        break
     183                                }
     184                        }
     185                        u.lock.Unlock()
    172186                case eventDownstreamMessage:
    173187                        msg, dc := e.msg, e.dc
     
    190204}
    191205
    192 func (u *user) removeDownstream(dc *downstreamConn) {
    193         u.lock.Lock()
    194         for i := range u.downstreamConns {
    195                 if u.downstreamConns[i] == dc {
    196                         u.downstreamConns = append(u.downstreamConns[:i], u.downstreamConns[i+1:]...)
    197                         break
    198                 }
    199         }
    200         u.lock.Unlock()
    201 }
    202 
    203206func (u *user) createNetwork(net *Network) (*network, error) {
    204207        if net.ID != 0 {
Note: See TracChangeset for help on using the changeset viewer.