| | |
| | | default: |
| | | msg, err = c.Recv() |
| | | if err != nil { |
| | | c.Close() |
| | | url := "hello" |
| | | i, err := deliver.NewClientWithError(deliver.Shm, url) |
| | | for { |
| | | if err == nil { |
| | | break |
| | | } |
| | | time.Sleep(1 * time.Second) |
| | | i, err = deliver.NewClientWithError(deliver.Shm, url) |
| | | |
| | | fmt.Println("client create failed : ", err) |
| | | |
| | | } |
| | | c = i |
| | | |
| | | fmt.Println("recv error : ", err) |
| | | return |
| | | continue |
| | | } |
| | | if ch != nil { |
| | | ch <- true |
| | |
| | | go shmrecver(ctx, s, 0, nil) |
| | | |
| | | } else { |
| | | // recvers(ctx, ipc, count, nil) |
| | | recvers(ctx, ipc, count, nil) |
| | | |
| | | return |
| | | |
| | | chWaiter := make(chan bool, count) |
| | | cs := recvers(ctx, ipc, count, chWaiter) |
| | |
| | | for _, v := range cs { |
| | | v.Close() |
| | | } |
| | | cs = recvers(ctx, ipc, count, chWaiter) |
| | | fmt.Println("restart recievers") |
| | | waitCount = 0 |
| | | continue |
| | | // cs = recvers(ctx, ipc, count, chWaiter) |
| | | // fmt.Println("restart recievers") |
| | | // waitCount = 0 |
| | | // continue |
| | | } |
| | | time.Sleep(time.Millisecond * 5) |
| | | waitCount++ |