Skip to content

Commit

Permalink
add glog
Browse files Browse the repository at this point in the history
  • Loading branch information
liujianping committed Mar 16, 2020
1 parent 7053c93 commit 892cace
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 7 deletions.
5 changes: 5 additions & 0 deletions example/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,23 @@ package main

import (
"context"
"flag"
"log"
"net"
"net/textproto"
"strings"

"github.com/golang/glog"

"golang.org/x/net/trace"

"github.com/x-mod/routine"
"github.com/x-mod/tcpserver"
)

func main() {
flag.Parse()
defer glog.Flush()
srv := tcpserver.New(
tcpserver.Network("tcp"),
tcpserver.Address("127.0.0.1:8080"),
Expand Down
3 changes: 2 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ module github.com/x-mod/tcpserver
go 1.13

require (
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
github.com/x-mod/event v0.0.1
github.com/x-mod/routine v1.3.0 // indirect
github.com/x-mod/routine v1.3.0
golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa
)
1 change: 1 addition & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM=
Expand Down
17 changes: 11 additions & 6 deletions tcpserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import (
"runtime"
"sync"

"github.com/golang/glog"

"github.com/x-mod/event"
"golang.org/x/net/trace"
)
Expand Down Expand Up @@ -94,6 +96,7 @@ func New(opts ...ServerOpt) *Server {
serv := &Server{
name: "tcpserver",
network: "tcp",
stop: event.New(),
}
for _, opt := range opts {
opt(serv)
Expand All @@ -111,6 +114,7 @@ func (srv *Server) printf(format string, a ...interface{}) {
if srv.events != nil {
srv.events.Printf(format, a...)
}
glog.V(2).Infof(format, a...)
}

func (srv *Server) errorf(format string, a ...interface{}) {
Expand All @@ -119,6 +123,7 @@ func (srv *Server) errorf(format string, a ...interface{}) {
if srv.events != nil {
srv.events.Errorf(format, a...)
}
glog.Errorf(format, a...)
}

//Serve tcpserver serving
Expand All @@ -137,21 +142,22 @@ func (srv *Server) Serve(ctx context.Context) error {
if srv.tls != nil {
srv.listener = tls.NewListener(srv.listener, srv.tls)
}
srv.stop = event.New()
for {
select {
case <-ctx.Done():
srv.errorf("%s stopped: %v", srv.name, ctx.Err())
return ctx.Err()
case <-srv.stop.Done():
srv.printf("%s stopped.", srv.name)
return nil
default:
con, err := srv.listener.Accept()
if err != nil {
if ne, ok := err.(net.Error); ok && ne.Temporary() {
srv.errorf("accept temp err: %v", ne)
srv.errorf("%s accept temp err: %v", srv.name, ne)
continue
}
srv.errorf("accept failed: %v", err)
srv.errorf("%s accept failed: %v", srv.name, err)
return err
}

Expand All @@ -175,9 +181,8 @@ func (srv *Server) Serve(ctx context.Context) error {

//Close tcpserver waiting all connections finished
func (srv *Server) Close() {
if srv.stop != nil {
srv.stop.Fire()
}
srv.stop.Fire()
srv.listener.Close()
srv.wgroup.Wait()
if srv.events != nil {
srv.events.Finish()
Expand Down

0 comments on commit 892cace

Please sign in to comment.