diff --git a/synced-pool.go b/synced-pool.go index 68354c8..fca97fd 100644 --- a/synced-pool.go +++ b/synced-pool.go @@ -205,11 +205,11 @@ func NewSyncedPool(local *GrainLocalPool, hostname string, discovery Discovery) } known := pool.IsKnown(chng.Host) if chng.Type != watch.Deleted && !known { - go func(h string) { - log.Printf("Discovered host %s, waiting for startup", h) - time.Sleep(time.Second) - pool.AddRemote(h) - }(chng.Host) + + log.Printf("Discovered host %s, waiting for startup", h) + time.Sleep(time.Second) + pool.AddRemote(chng.Host) + } else if chng.Type == watch.Deleted && known { log.Printf("Host removed %s, removing from index", chng.Host) for _, r := range pool.remotes { diff --git a/tcp-connection.go b/tcp-connection.go index 8fe460e..6ff73aa 100644 --- a/tcp-connection.go +++ b/tcp-connection.go @@ -134,8 +134,8 @@ func WaitForFrame(conn net.Conn, resultChan chan<- FrameWithPayload) error { } type GenericListener struct { - Closed bool - handlers map[FrameType]func(*FrameWithPayload, chan<- FrameWithPayload) error + StopListener bool + handlers map[FrameType]func(*FrameWithPayload, chan<- FrameWithPayload) error } func (c *Connection) Listen() (*GenericListener, error) { @@ -147,7 +147,7 @@ func (c *Connection) Listen() (*GenericListener, error) { handlers: make(map[FrameType]func(*FrameWithPayload, chan<- FrameWithPayload) error), } go func() { - for !ret.Closed { + for !ret.StopListener { connection, err := l.Accept() if err != nil { log.Fatalf("Error accepting connection: %v\n", err) @@ -159,7 +159,7 @@ func (c *Connection) Listen() (*GenericListener, error) { } const ( - MaxCallDuration = 500 * time.Millisecond + MaxCallDuration = 1500 * time.Millisecond ) func (l *GenericListener) HandleConnection(conn net.Conn) {