Skip to content

Commit

Permalink
chore(socket): Add TryOptimize
Browse files Browse the repository at this point in the history
Change-Id: I1d9c8dd07e01c81b4aca2b6b2311deaa450831fa
  • Loading branch information
andeya committed Nov 11, 2019
1 parent 36da704 commit 87d7ab4
Showing 1 changed file with 26 additions and 21 deletions.
47 changes: 26 additions & 21 deletions socket/socket.go
Original file line number Diff line number Diff line change
Expand Up @@ -332,27 +332,7 @@ func (s *socket) isActiveClosed() bool {
}

func (s *socket) initOptimize() {
if c, ok := s.Conn.(ifaceSetKeepAlive); ok {
if changeKeepAlive {
c.SetKeepAlive(keepAlive)
}
if keepAlivePeriod >= 0 && keepAlive {
c.SetKeepAlivePeriod(keepAlivePeriod)
}
}
if c, ok := s.Conn.(ifaceSetBuffer); ok {
if readBuffer >= 0 {
c.SetReadBuffer(readBuffer)
}
if writeBuffer >= 0 {
c.SetWriteBuffer(writeBuffer)
}
}
if c, ok := s.Conn.(ifaceSetNoDelay); ok {
if !noDelay {
c.SetNoDelay(noDelay)
}
}
TryOptimize(s.Conn)
}

type (
Expand Down Expand Up @@ -380,6 +360,31 @@ type (
}
)

// TryOptimize attempts to set KeepAlive, KeepAlivePeriod, ReadBuffer, WriteBuffer or NoDelay.
func TryOptimize(conn net.Conn) {
if c, ok := conn.(ifaceSetKeepAlive); ok {
if changeKeepAlive {
c.SetKeepAlive(keepAlive)
}
if keepAlivePeriod >= 0 && keepAlive {
c.SetKeepAlivePeriod(keepAlivePeriod)
}
}
if c, ok := conn.(ifaceSetBuffer); ok {
if readBuffer >= 0 {
c.SetReadBuffer(readBuffer)
}
if writeBuffer >= 0 {
c.SetWriteBuffer(writeBuffer)
}
}
if c, ok := conn.(ifaceSetNoDelay); ok {
if !noDelay {
c.SetNoDelay(noDelay)
}
}
}

// Connection related system configuration
var (
writeBuffer int = -1
Expand Down

0 comments on commit 87d7ab4

Please sign in to comment.