Skip to content

Commit

Permalink
Support SO_REUSEPORT (#12)
Browse files Browse the repository at this point in the history
  • Loading branch information
zhangxu19830126 authored Sep 8, 2021
1 parent 2e3871f commit 565a457
Show file tree
Hide file tree
Showing 14 changed files with 367 additions and 1 deletion.
8 changes: 7 additions & 1 deletion application.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,15 @@ import (
"sync/atomic"
"time"

"github.com/valyala/tcplisten"
"go.uber.org/zap"
)

var cfg = &tcplisten.Config{
ReusePort: true,
FastOpen: true,
}

var (
stateReadyToStart = int32(0)
stateStarting = int32(1)
Expand Down Expand Up @@ -75,7 +81,7 @@ func NewApplication(listener net.Listener, handleFunc func(IOSession, interface{

// NewTCPApplication returns a net application
func NewTCPApplication(addr string, handleFunc func(IOSession, interface{}, uint64) error, opts ...AppOption) (NetApplication, error) {
listener, err := net.Listen("tcp", addr)
listener, err := cfg.NewListener("tcp4", addr)
if err != nil {
return nil, err
}
Expand Down
1 change: 1 addition & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@ go 1.16
require (
github.com/fagongzi/util v0.0.0-20201116094402-221cc40c4593
github.com/stretchr/testify v1.7.0
github.com/valyala/tcplisten v1.0.0
go.uber.org/zap v1.18.1
)
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8=
github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc=
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/goleak v1.1.10 h1:z+mqJhf6ss6BSfSM671tgKyZBFPTTJM+HLxnhPC3wu0=
Expand Down
15 changes: 15 additions & 0 deletions vendor/github.com/valyala/tcplisten/.travis.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 21 additions & 0 deletions vendor/github.com/valyala/tcplisten/LICENSE

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 21 additions & 0 deletions vendor/github.com/valyala/tcplisten/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions vendor/github.com/valyala/tcplisten/go.mod

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 23 additions & 0 deletions vendor/github.com/valyala/tcplisten/socket.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions vendor/github.com/valyala/tcplisten/socket_darwin.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 21 additions & 0 deletions vendor/github.com/valyala/tcplisten/socket_other.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

162 changes: 162 additions & 0 deletions vendor/github.com/valyala/tcplisten/tcplisten.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions vendor/github.com/valyala/tcplisten/tcplisten_bsd.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 565a457

Please sign in to comment.