mirror of
https://github.com/PeernetOfficial/core.git
synced 2026-07-17 02:47:51 +01:00
UDT: Remove unnecessary shutdownEvent waiting in udtSocket.Close. permitLinger only allowed for server, unless closed by client.
This commit is contained in:
@@ -295,7 +295,6 @@ func (s *udtSocket) Close() error {
|
||||
}
|
||||
|
||||
close(s.messageOut)
|
||||
_, _ = <-s.shutdownEvent
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -691,7 +690,7 @@ func (s *udtSocket) readPacket(m *multiplexer, p packet.Packet) {
|
||||
case *packet.HandshakePacket: // sent by both peers
|
||||
s.readHandshake(m, sp)
|
||||
case *packet.ShutdownPacket: // sent by either peer
|
||||
s.shutdownEvent <- shutdownMessage{sockState: sockStateClosed, permitLinger: true}
|
||||
s.shutdownEvent <- shutdownMessage{sockState: sockStateClosed, permitLinger: s.isServer} // if client tells us done, it is done.
|
||||
case *packet.AckPacket, *packet.LightAckPacket, *packet.NakPacket: // receiver -> sender
|
||||
s.sendEvent <- recvPktEvent{pkt: p, now: now}
|
||||
case *packet.UserDefControlPacket:
|
||||
|
||||
@@ -117,7 +117,7 @@ func (s *udtSocketSend) goSendEvent() {
|
||||
case msg, ok := <-thisMsgChan: // nil if we can't process outgoing messages right now
|
||||
if !ok {
|
||||
s.sendPacket <- &packet.ShutdownPacket{}
|
||||
s.shutdownEvent <- shutdownMessage{sockState: sockStateClosed, permitLinger: true}
|
||||
s.shutdownEvent <- shutdownMessage{sockState: sockStateClosed, permitLinger: !s.socket.isServer}
|
||||
return
|
||||
}
|
||||
s.msgPartialSend = &msg
|
||||
|
||||
Reference in New Issue
Block a user