diff --git a/synced-pool.go b/synced-pool.go index 2abc216..2aa2f1b 100644 --- a/synced-pool.go +++ b/synced-pool.go @@ -83,7 +83,7 @@ func (p *SyncedPool) NegotiateHandler(data []byte) (uint32, []byte, error) { negotiationCount.Inc() log.Printf("Handling negotiation\n") for _, host := range p.ExcludeKnown(strings.Split(string(data), ";")) { - p.AddRemote(host) + go p.AddRemote(host) } return RemoteNegotiateResponse, []byte("ok"), nil @@ -111,14 +111,14 @@ func (p *SyncedPool) GrainOwnerChangeHandler(data []byte) (uint32, []byte, error grain, err := NewRemoteGrain(id, r.Host) if err != nil { log.Printf("Owner change failed %s: %v\n", id, err) - return AckChange, []byte("error"), nil + return AckChange, []byte("error"), err } p.remoteIndex[id] = grain p.mu.Unlock() return AckChange, []byte("ok"), nil } } - return AckChange, []byte("not found"), nil + return AckChange, []byte{}, fmt.Errorf("remote host not found") } func NewSyncedPool(local *GrainLocalPool, hostname string, discovery Discovery) (*SyncedPool, error) { diff --git a/tcp-cart-mux-server.go b/tcp-cart-mux-server.go index 3b3ae8d..ab64058 100644 --- a/tcp-cart-mux-server.go +++ b/tcp-cart-mux-server.go @@ -15,7 +15,7 @@ type CartServer struct { func CartListen(address string) (*CartServer, error) { listener, err := net.Listen("tcp", address) server := &CartServer{ - NewCartTCPServerMux(100), + NewCartTCPServerMux(), } if err != nil { @@ -40,7 +40,7 @@ type TCPCartServerMux struct { functions map[uint32]func(CartId, []byte) (uint32, []byte, error) } -func NewCartTCPServerMux(maxClients int) *TCPCartServerMux { +func NewCartTCPServerMux() *TCPCartServerMux { m := &TCPCartServerMux{ mu: sync.RWMutex{}, listeners: make(map[uint32]func(CartId, []byte) error), diff --git a/tcp-mux-server.go b/tcp-mux-server.go index 8ca37c3..e505dd3 100644 --- a/tcp-mux-server.go +++ b/tcp-mux-server.go @@ -15,7 +15,7 @@ type Server struct { func Listen(address string) (*Server, error) { listener, err := net.Listen("tcp", address) server := &Server{ - NewTCPServerMux(100), + NewTCPServerMux(), } if err != nil { @@ -40,7 +40,7 @@ type TCPServerMux struct { functions map[uint32]func(data []byte) (uint32, []byte, error) } -func NewTCPServerMux(maxClients int) *TCPServerMux { +func NewTCPServerMux() *TCPServerMux { m := &TCPServerMux{ mu: sync.RWMutex{}, listeners: make(map[uint32]func(data []byte) error),