/usr/lib/python3/dist-packages/twisted/internet/__pycache__
Edit: /usr/lib/python3/dist-packages/twisted/internet/__pycache__/threads.cpython-310.pyc (4208B)
o
b @ sX d Z ddlZddlmZ ddlmZ dd Zdd Zd d
Z dd Z
d
d Zg dZdS )zY
Extended thread dispatching support.
For basic support see reactor threading API docs.
N)defer)failurec s4 t fdd}|j||g|R i | S )a3
Call the function C{f} using a thread from the given threadpool and return
the result as a Deferred.
This function is only used by client code which is maintaining its own
threadpool. To run a function in the reactor's threadpool, use
C{deferToThread}.
@param reactor: The reactor in whose main thread the Deferred will be
invoked.
@param threadpool: An object which supports the C{callInThreadWithCallback}
method of C{twisted.python.threadpool.ThreadPool}.
@param f: The function to call.
@param args: positional arguments to pass to f.
@param kwargs: keyword arguments to pass to f.
@return: A Deferred which fires a callback with the result of f, or an
errback with a L{twisted.python.failure.Failure} if f throws an
exception.
c s( | r j| d S j| d S N)callFromThreadcallbackerrback)successresultdreactor :/usr/lib/python3/dist-packages/twisted/internet/threads.pyonResult* s z#deferToThreadPool.
.onResult)r DeferredcallInThreadWithCallback)r
threadpoolfargskwargsr r
r
r deferToThreadPool s r c O s* ddl m} t|| | g|R i |S )at
Run a function in a thread and return the result as a Deferred.
@param f: The function to call.
@param args: positional arguments to pass to f.
@param kwargs: keyword arguments to pass to f.
@return: A Deferred which fires a callback with the result of f,
or an errback with a L{twisted.python.failure.Failure} if f throws
an exception.
r r )twisted.internetr r
getThreadPool)r r r r r
r
r
deferToThread5 s r c C s" | D ]\}}}||i | qdS )z"
Run a list of functions.
Nr
) tupleListr r r r
r
r _runMultipleF s r c C s ddl m} |t| dS )z
Run a list of functions in the same thread.
tupleList should be a list of (function, argsList, kwargsDict) tuples.
r r N)r r callInThreadr )r r r
r
r callMultipleInThreadN s r c sD t fdd}| | }t|tjr | |S )a
Run a function in the reactor from a thread, and wait for the result
synchronously. If the function returns a L{Deferred}, wait for its
result and return that.
@param reactor: The L{IReactorThreads} provider which will be used to
schedule the function call.
@param f: the callable to run in the reactor thread
@type f: any callable.
@param a: the arguments to pass to C{f}.
@param kw: the keyword arguments to pass to C{f}.
@return: the result of the L{Deferred} returned by C{f}, or the result
of C{f} if it returns anything other than a L{Deferred}.
@raise Exception: If C{f} raises a synchronous exception,
C{blockingCallFromThread} will raise that exception. If C{f}
returns a L{Deferred} which fires with a L{Failure},
C{blockingCallFromThread} will raise that failure's exception (see
L{Failure.raiseException}).
c s( t jg R i } | j d S r )r
maybeDeferredaddBothput)r ar kwqueuer
r _callFromThreadq s z/blockingCallFromThread.._callFromThread)Queuer get
isinstancer FailureraiseException)r r r# r$ r&