~divmod-dev/divmod.org/trunk

« back to all changes in this revision

Viewing changes to Epsilon/epsilon/pending.py

  • Committer: Jean-Paul Calderone
  • Date: 2014-06-29 20:33:04 UTC
  • mfrom: (2749.1.1 remove-epsilon-1325289)
  • Revision ID: exarkun@twistedmatrix.com-20140629203304-gdkmbwl1suei4m97
mergeĀ lp:~exarkun/divmod.org/remove-epsilon-1325289

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 
2
 
from twisted.internet.defer import Deferred
3
 
from twisted.python.failure import Failure
4
 
 
5
 
class PendingEvent(object):
6
 
    def __init__(self):
7
 
        self.listeners = []
8
 
 
9
 
    def deferred(self):
10
 
        d = Deferred()
11
 
        self.listeners.append(d)
12
 
        return d
13
 
 
14
 
    def callback(self, result):
15
 
        l = self.listeners
16
 
        self.listeners = []
17
 
        for d in l:
18
 
            d.callback(result)
19
 
 
20
 
    def errback(self, result=None):
21
 
        if result is None:
22
 
            result = Failure()
23
 
        l = self.listeners
24
 
        self.listeners = []
25
 
        for d in l:
26
 
            d.errback(result)