Skip to content

Commit

Permalink
optimize decode logical and fix some bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
曾纪文 authored and lonng committed Jul 5, 2021
1 parent e51e7f3 commit 7020ee1
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 25 deletions.
6 changes: 1 addition & 5 deletions cluster/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -187,11 +187,7 @@ func (c *cluster) delMember(addr string) {
}
}
if index != -1 {
if index == len(c.members)-1 {
c.members = c.members[:index]
} else {
c.members = append(c.members[:index], c.members[index+1:]...)
}
c.members = append(c.members[:index], c.members[index+1:]...)
}
c.mu.Unlock()
}
24 changes: 12 additions & 12 deletions cluster/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,11 +140,7 @@ func (h *LocalHandler) delMember(addr string) {
for name, members := range h.remoteServices {
for i, maddr := range members {
if addr == maddr.ServiceAddr {
if i == len(members)-1 {
members = members[:i]
} else {
members = append(members[:i], members[i+1:]...)
}
members = append(members[:i], members[i+1:]...)
}
}
if len(members) == 0 {
Expand Down Expand Up @@ -232,16 +228,20 @@ func (h *LocalHandler) handle(conn net.Conn) {
packets, err := agent.decoder.Decode(buf[:n])
if err != nil {
log.Println(err.Error())
return
}

if len(packets) < 1 {
continue
// process packets decoded
for _, p := range packets {
if err := h.processPacket(agent, p); err != nil {
log.Println(err.Error())
return
}
}
return
}

// process all packet
for i := range packets {
if err := h.processPacket(agent, packets[i]); err != nil {
// process all packets
for _, p := range packets {
if err := h.processPacket(agent, p); err != nil {
log.Println(err.Error())
return
}
Expand Down
5 changes: 2 additions & 3 deletions component/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,12 @@ import (
)

type (
//Handler represents a message.Message's handler's meta information.
//Handler represents a message.Message's handler's meta information.
Handler struct {
Receiver reflect.Value // receiver of method
Method reflect.Method // method stub
Type reflect.Type // low-level type of method
IsRawArg bool // whether the data need to serialize
Type reflect.Type // arg type of method
IsRawArg bool // whether the data need to unserialize
}

// Service implements a specific service, some of it's methods will be
Expand Down
2 changes: 1 addition & 1 deletion examples/cluster/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ func runGate(args *cli.Context) error {
}

masterAddr := args.String("master")
if listen == "" {
if masterAddr == "" {
return errors.Errorf("master address cannot empty")
}

Expand Down
2 changes: 1 addition & 1 deletion group_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ func TestChannel_Add(t *testing.T) {
t.Fatalf("count expect: %d, got: %d", paraCount, c.Count())
}

n := rand.Int63n(int64(paraCount) + 1)
n := rand.Int63n(int64(paraCount)) + 1
if !c.Contains(n) {
t.Fail()
}
Expand Down
4 changes: 1 addition & 3 deletions internal/codec/codec.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,10 +98,8 @@ func (c *Decoder) Decode(data []byte) ([]*packet.Packet, error) {
}

if err = c.forward(); err != nil {
return nil, err

return packets, err
}

}

return packets, nil
Expand Down

0 comments on commit 7020ee1

Please sign in to comment.