Index: third_party/twisted_8_1/twisted/internet/threads.py |
diff --git a/third_party/twisted_8_1/twisted/internet/threads.py b/third_party/twisted_8_1/twisted/internet/threads.py |
deleted file mode 100644 |
index 415b66dca92a981fd379d112074c917153e12b18..0000000000000000000000000000000000000000 |
--- a/third_party/twisted_8_1/twisted/internet/threads.py |
+++ /dev/null |
@@ -1,88 +0,0 @@ |
-# Copyright (c) 2001-2007 Twisted Matrix Laboratories. |
-# See LICENSE for details. |
- |
-""" |
-Extended thread dispatching support. |
- |
-For basic support see reactor threading API docs. |
- |
-Maintainer: U{Itamar Shtull-Trauring<mailto:twisted@itamarst.org>} |
-""" |
- |
-import Queue |
- |
-from twisted.python import failure |
-from twisted.internet import defer |
- |
- |
-def _putResultInDeferred(deferred, f, args, kwargs): |
- """ |
- Run a function and give results to a Deferred. |
- """ |
- from twisted.internet import reactor |
- try: |
- result = f(*args, **kwargs) |
- except: |
- f = failure.Failure() |
- reactor.callFromThread(deferred.errback, f) |
- else: |
- reactor.callFromThread(deferred.callback, result) |
- |
- |
-def deferToThread(f, *args, **kwargs): |
- """ |
- Run function in thread and return result as Deferred. |
- """ |
- d = defer.Deferred() |
- from twisted.internet import reactor |
- reactor.callInThread(_putResultInDeferred, d, f, args, kwargs) |
- return d |
- |
- |
-def _runMultiple(tupleList): |
- """ |
- Run a list of functions. |
- """ |
- for f, args, kwargs in tupleList: |
- f(*args, **kwargs) |
- |
- |
-def callMultipleInThread(tupleList): |
- """ |
- Run a list of functions in the same thread. |
- |
- tupleList should be a list of (function, argsList, kwargsDict) tuples. |
- """ |
- from twisted.internet import reactor |
- reactor.callInThread(_runMultiple, tupleList) |
- |
- |
-def blockingCallFromThread(reactor, f, *a, **kw): |
- """ |
- Run a function in the reactor from a thread, and wait for the result |
- synchronously, i.e. until the callback chain returned by the function |
- get a result. |
- |
- @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 callback chain. |
- @raise: any error raised during the callback chain. |
- """ |
- queue = Queue.Queue() |
- def _callFromThread(): |
- result = defer.maybeDeferred(f, *a, **kw) |
- result.addBoth(queue.put) |
- reactor.callFromThread(_callFromThread) |
- result = queue.get() |
- if isinstance(result, failure.Failure): |
- result.raiseException() |
- return result |
- |
- |
-__all__ = ["deferToThread", "callMultipleInThread", "blockingCallFromThread"] |
- |