MCPcopy
hub / github.com/wavetermdev/waveterm / WaitForConnect

Method WaitForConnect

pkg/wslconn/wslconn.go:466–488  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

464}
465
466func (conn *WslConn) WaitForConnect(ctx context.Context) error {
467 for {
468 status := conn.DeriveConnStatus()
469 if status.Status == Status_Connected {
470 return nil
471 }
472 if status.Status == Status_Connecting {
473 select {
474 case <-ctx.Done():
475 return fmt.Errorf("context timeout")
476 case <-time.After(100 * time.Millisecond):
477 continue
478 }
479 }
480 if status.Status == Status_Init || status.Status == Status_Disconnected {
481 return fmt.Errorf("disconnected")
482 }
483 if status.Status == Status_Error {
484 return fmt.Errorf("error: %v", status.Error)
485 }
486 return fmt.Errorf("unknown status: %q", status.Status)
487 }
488}
489
490// does not return an error since that error is stored inside of WslConn
491func (conn *WslConn) Connect(ctx context.Context) error {

Callers 1

EnsureConnectionFunction · 0.45

Calls 1

DeriveConnStatusMethod · 0.95

Tested by

no test coverage detected