Your IP : 172.28.240.42


Current Path : /usr/lib/python2.7/dist-packages/twisted/internet/
Upload File :
Current File : //usr/lib/python2.7/dist-packages/twisted/internet/threads.pyc


[XMc@sudZddlZddlmZddlmZdZdZdZdZ	d	Z
d
ddd
gZdS(s}
Extended thread dispatching support.

For basic support see reactor threading API docs.

Maintainer: Itamar Shtull-Trauring
iN(tfailure(tdefercs8tjfd}|j||||S(s6
    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.
    cs3|rjj|njj|dS(N(tcallFromThreadtcallbackterrback(tsuccesstresult(tdtreactor(s</usr/lib/python2.7/dist-packages/twisted/internet/threads.pytonResult+s(RtDeferredtcallInThreadWithCallback(Rt
threadpooltftargstkwargsR	((RRs</usr/lib/python2.7/dist-packages/twisted/internet/threads.pytdeferToThreadPoolscOs,ddlm}t||j|||S(sw
    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.
    i(R(ttwisted.internetRRt
getThreadPool(R
RRR((s</usr/lib/python2.7/dist-packages/twisted/internet/threads.pyt
deferToThread6scCs+x$|D]\}}}|||qWdS(s"
    Run a list of functions.
    N((t	tupleListR
RR((s</usr/lib/python2.7/dist-packages/twisted/internet/threads.pyt_runMultipleGscCs$ddlm}|jt|dS(s
    Run a list of functions in the same thread.

    tupleList should be a list of (function, argsList, kwargsDict) tuples.
    i(RN(RRtcallInThreadR(RR((s</usr/lib/python2.7/dist-packages/twisted/internet/threads.pytcallMultipleInThreadOscs`tjfd}|j|j}t|tjr\|jn|S(s
    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: 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}).
    cs)tj}|jjdS(N(Rt
maybeDeferredtaddBothtput(R(taR
tqueuetkw(s</usr/lib/python2.7/dist-packages/twisted/internet/threads.pyt_callFromThreadps(tQueueRtgett
isinstanceRtFailuretraiseException(RR
RRRR((RR
RRs</usr/lib/python2.7/dist-packages/twisted/internet/threads.pytblockingCallFromThreadYs

RRRR$(t__doc__Rttwisted.pythonRRRRRRRR$t__all__(((s</usr/lib/python2.7/dist-packages/twisted/internet/threads.pyt<module>
s	$			
	!