()
| 698 | } |
| 699 | |
| 700 | func (c *ForwardCtx) Kill() { |
| 701 | if !c.stopped { |
| 702 | _ = c.NoMoreConnections() |
| 703 | } |
| 704 | for _, conn := range c.connMap { |
| 705 | _ = conn.Close() |
| 706 | } |
| 707 | t := make(chan struct{}) |
| 708 | go func() { |
| 709 | select { |
| 710 | case <-t: |
| 711 | case <-time.After(5 * time.Second): |
| 712 | for _, conn := range c.connMap { |
| 713 | _ = conn.CloseImm() |
| 714 | } |
| 715 | } |
| 716 | }() |
| 717 | c.WaitFinish() |
| 718 | } |