class documentation

ThreadedResolver uses a reactor, a threadpool, and socket.gethostbyname to perform name lookups without blocking the reactor thread. It also supports timeouts indepedently from whatever timeout logic socket.gethostbyname might have.

Method __init__ Undocumented
Method getHostByName See twisted.internet.interfaces.IResolverSimple.getHostByName.
Instance Variable reactor The reactor the threadpool of which will be used to call socket.gethostbyname and the I/O thread of which the result will be delivered.
Method _checkTimeout Undocumented
Method _cleanup Undocumented
Method _fail Undocumented
Instance Variable _runningQueries Undocumented
def __init__(self, reactor: ReactorBase):

Undocumented

def getHostByName(self, name: str, timeout: Sequence[int] = (1, 3, 11, 45)) -> Deferred[str]:

See twisted.internet.interfaces.IResolverSimple.getHostByName.

Note that the elements of timeout are summed and the result is used as a timeout for the lookup. Any intermediate timeout or retry logic is left up to the platform via socket.gethostbyname.

reactor =

The reactor the threadpool of which will be used to call socket.gethostbyname and the I/O thread of which the result will be delivered.

def _checkTimeout(self, result: str | Failure, name: str, lookupDeferred: Deferred[str]):

Undocumented

def _cleanup(self, name: str, lookupDeferred: Deferred[str]):

Undocumented

def _fail(self, name: str, err: str) -> Failure:

Undocumented

_runningQueries: dict[Deferred[str], tuple[Deferred[str], IDelayedCall]] =

Undocumented