File: //lib/python3/dist-packages/twisted/internet/__pycache__/threads.cpython-312.pyc
�
�b� � �N � d Z ddlZddlmZ ddlmZ d� Zd� Zd� Z d� Z
d � Zg d
�Zy)zY
Extended thread dispatching support.
For basic support see reactor threading API docs.
� N)�defer)�failurec �l � �� t j � ��� fd�} |j ||g|��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 �| �� | r�j �j |� y �j �j |� y �N)�callFromThread�callback�errback)�success�result�d�reactors ���:/usr/lib/python3/dist-packages/twisted/internet/threads.py�onResultz#deferToThreadPool.<locals>.onResult* s. �� ���"�"�1�:�:�v�6��"�"�1�9�9�f�5� )r �Deferred�callInThreadWithCallback)r �
threadpool�f�args�kwargsr r
s ` @r �deferToThreadPoolr s9 �� �. ����A�6� (�J�'�'��!�E�d�E�f�E��Hr c �L � ddl m} t ||j � | g|��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 s r �
deferToThreadr 5 s) � � )��W�g�&;�&;�&=�q�R�4�R�6�R�Rr c �* � | D ] \ }}} ||i |�� � y)z"
Run a list of functions.
N� )� tupleListr r r s r �_runMultipler! F s! � � %���4�� �4��6�� %r c �<