mirror of
https://github.com/golang/go
synced 2024-10-04 23:20:17 +00:00
update
Change-Id: If38c829b4a7d6e8044d4f67fd368cacfccc941c4
This commit is contained in:
parent
cfc47684a6
commit
4189b9faf0
|
@ -43,19 +43,6 @@ func (eai addrinfoErrno) isAddrinfoErrno() {}
|
|||
// For the duration of the execution of the blocking function, the thread is 'acquired' using [acquireThread],
|
||||
// blocking might not be executed when the context gets cancelled early.
|
||||
func doBlockingWithCtx[T any](ctx context.Context, lookupName string, blocking func() (T, error)) (T, error) {
|
||||
if ctx.Done() == nil {
|
||||
// Context is non-cancellable, so there is no need
|
||||
// to handle the error from acquireThread.
|
||||
acquireThread(ctx)
|
||||
defer releaseThread()
|
||||
return blocking()
|
||||
}
|
||||
|
||||
type result struct {
|
||||
res T
|
||||
err error
|
||||
}
|
||||
|
||||
if err := acquireThread(ctx); err != nil {
|
||||
var zero T
|
||||
return zero, &DNSError{
|
||||
|
@ -65,6 +52,16 @@ func doBlockingWithCtx[T any](ctx context.Context, lookupName string, blocking f
|
|||
}
|
||||
}
|
||||
|
||||
if ctx.Done() == nil {
|
||||
defer releaseThread()
|
||||
return blocking()
|
||||
}
|
||||
|
||||
type result struct {
|
||||
res T
|
||||
err error
|
||||
}
|
||||
|
||||
res := make(chan result, 1)
|
||||
go func() {
|
||||
defer releaseThread()
|
||||
|
|
|
@ -209,7 +209,7 @@ func (r *Resolver) lookupPort(ctx context.Context, network, service string) (int
|
|||
return lookupPortMap(network, service)
|
||||
}
|
||||
|
||||
// TODO(bradfitz): finish ctx plumbing. Nothing currently depends on this.
|
||||
// TODO(bradfitz): finish ctx plumbing
|
||||
if err := acquireThread(ctx); err != nil {
|
||||
return 0, &DNSError{
|
||||
Name: network + "/" + service,
|
||||
|
@ -278,7 +278,7 @@ func (r *Resolver) lookupCNAME(ctx context.Context, name string) (string, error)
|
|||
return r.goLookupCNAME(ctx, name, order, conf)
|
||||
}
|
||||
|
||||
// TODO(bradfitz): finish ctx plumbing. Nothing currently depends on this.
|
||||
// TODO(bradfitz): finish ctx plumbing
|
||||
if err := acquireThread(ctx); err != nil {
|
||||
return "", &DNSError{
|
||||
Name: name,
|
||||
|
@ -309,7 +309,7 @@ func (r *Resolver) lookupSRV(ctx context.Context, service, proto, name string) (
|
|||
if systemConf().mustUseGoResolver(r) {
|
||||
return r.goLookupSRV(ctx, service, proto, name)
|
||||
}
|
||||
// TODO(bradfitz): finish ctx plumbing. Nothing currently depends on this.
|
||||
// TODO(bradfitz): finish ctx plumbing
|
||||
if err := acquireThread(ctx); err != nil {
|
||||
return "", nil, &DNSError{
|
||||
Name: name,
|
||||
|
@ -345,7 +345,7 @@ func (r *Resolver) lookupMX(ctx context.Context, name string) ([]*MX, error) {
|
|||
if systemConf().mustUseGoResolver(r) {
|
||||
return r.goLookupMX(ctx, name)
|
||||
}
|
||||
// TODO(bradfitz): finish ctx plumbing. Nothing currently depends on this.
|
||||
// TODO(bradfitz): finish ctx plumbing.
|
||||
if err := acquireThread(ctx); err != nil {
|
||||
return nil, &DNSError{
|
||||
Name: name,
|
||||
|
@ -375,7 +375,7 @@ func (r *Resolver) lookupNS(ctx context.Context, name string) ([]*NS, error) {
|
|||
if systemConf().mustUseGoResolver(r) {
|
||||
return r.goLookupNS(ctx, name)
|
||||
}
|
||||
// TODO(bradfitz): finish ctx plumbing. Nothing currently depends on this.
|
||||
// TODO(bradfitz): finish ctx plumbing.
|
||||
if err := acquireThread(ctx); err != nil {
|
||||
return nil, &DNSError{
|
||||
Name: name,
|
||||
|
@ -404,7 +404,7 @@ func (r *Resolver) lookupTXT(ctx context.Context, name string) ([]string, error)
|
|||
if systemConf().mustUseGoResolver(r) {
|
||||
return r.goLookupTXT(ctx, name)
|
||||
}
|
||||
// TODO(bradfitz): finish ctx plumbing. Nothing currently depends on this.
|
||||
// TODO(bradfitz): finish ctx plumbing.
|
||||
if err := acquireThread(ctx); err != nil {
|
||||
return nil, &DNSError{
|
||||
Name: name,
|
||||
|
@ -438,7 +438,7 @@ func (r *Resolver) lookupAddr(ctx context.Context, addr string) ([]string, error
|
|||
return r.goLookupPTR(ctx, addr, order, conf)
|
||||
}
|
||||
|
||||
// TODO(bradfitz): finish ctx plumbing. Nothing currently depends on this.
|
||||
// TODO(bradfitz): finish ctx plumbing.
|
||||
if err := acquireThread(ctx); err != nil {
|
||||
return nil, &DNSError{
|
||||
Name: addr,
|
||||
|
|
Loading…
Reference in a new issue