mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
net: refactor poller into new internal/poll package
This will make it possible to use the poller with the os package. This is a lot of code movement but the behavior is intended to be unchanged. Update #6817. Update #7903. Update #15021. Update #18507. Change-Id: I1413685928017c32df5654ded73a2643820977ae Reviewed-on: https://go-review.googlesource.com/36799 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
This commit is contained in:
parent
b548eee3d9
commit
3792db5183
79 changed files with 2722 additions and 1619 deletions
|
|
@ -7,6 +7,7 @@ package net
|
|||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"internal/poll"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/internal/socktest"
|
||||
|
|
@ -87,7 +88,7 @@ second:
|
|||
return nil
|
||||
}
|
||||
switch err := nestedErr.(type) {
|
||||
case *AddrError, addrinfoErrno, *DNSError, InvalidAddrError, *ParseError, *timeoutError, UnknownNetworkError:
|
||||
case *AddrError, addrinfoErrno, *DNSError, InvalidAddrError, *ParseError, *poll.TimeoutError, UnknownNetworkError:
|
||||
return nil
|
||||
case *os.SyscallError:
|
||||
nestedErr = err.Err
|
||||
|
|
@ -97,7 +98,7 @@ second:
|
|||
goto third
|
||||
}
|
||||
switch nestedErr {
|
||||
case errCanceled, errClosing, errMissingAddress, errNoSuitableAddress,
|
||||
case errCanceled, poll.ErrClosing, errMissingAddress, errNoSuitableAddress,
|
||||
context.DeadlineExceeded, context.Canceled:
|
||||
return nil
|
||||
}
|
||||
|
|
@ -432,7 +433,7 @@ second:
|
|||
goto third
|
||||
}
|
||||
switch nestedErr {
|
||||
case errClosing, errTimeout:
|
||||
case poll.ErrClosing, poll.ErrTimeout:
|
||||
return nil
|
||||
}
|
||||
return fmt.Errorf("unexpected type on 2nd nested level: %T", nestedErr)
|
||||
|
|
@ -467,14 +468,14 @@ second:
|
|||
return nil
|
||||
}
|
||||
switch err := nestedErr.(type) {
|
||||
case *AddrError, addrinfoErrno, *DNSError, InvalidAddrError, *ParseError, *timeoutError, UnknownNetworkError:
|
||||
case *AddrError, addrinfoErrno, *DNSError, InvalidAddrError, *ParseError, *poll.TimeoutError, UnknownNetworkError:
|
||||
return nil
|
||||
case *os.SyscallError:
|
||||
nestedErr = err.Err
|
||||
goto third
|
||||
}
|
||||
switch nestedErr {
|
||||
case errCanceled, errClosing, errMissingAddress, errTimeout, ErrWriteToConnected, io.ErrUnexpectedEOF:
|
||||
case errCanceled, poll.ErrClosing, errMissingAddress, poll.ErrTimeout, ErrWriteToConnected, io.ErrUnexpectedEOF:
|
||||
return nil
|
||||
}
|
||||
return fmt.Errorf("unexpected type on 2nd nested level: %T", nestedErr)
|
||||
|
|
@ -517,7 +518,7 @@ second:
|
|||
goto third
|
||||
}
|
||||
switch nestedErr {
|
||||
case errClosing:
|
||||
case poll.ErrClosing:
|
||||
return nil
|
||||
}
|
||||
return fmt.Errorf("unexpected type on 2nd nested level: %T", nestedErr)
|
||||
|
|
@ -613,7 +614,7 @@ second:
|
|||
goto third
|
||||
}
|
||||
switch nestedErr {
|
||||
case errClosing, errTimeout:
|
||||
case poll.ErrClosing, poll.ErrTimeout:
|
||||
return nil
|
||||
}
|
||||
return fmt.Errorf("unexpected type on 2nd nested level: %T", nestedErr)
|
||||
|
|
@ -692,7 +693,7 @@ second:
|
|||
goto third
|
||||
}
|
||||
switch nestedErr {
|
||||
case errClosing:
|
||||
case poll.ErrClosing:
|
||||
return nil
|
||||
}
|
||||
return fmt.Errorf("unexpected type on 2nd nested level: %T", nestedErr)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue