#NEWLINE# def chainDeferred( self , d ) : #NEWLINE# #INDENT# "\n        Chain another L{Deferred} to this L{Deferred}.\n\n        This method adds callbacks to this L{Deferred} to call C{d}'s callback\n        or errback, as appropriate. It is merely a shorthand way of performing\n        the following::\n\n            self.addCallbacks(d.callback, d.errback)\n\n        When you chain a deferred d2 to another deferred d1 with\n        d1.chainDeferred(d2), you are making d2 participate in the callback\n        chain of d1. Thus any event that fires d1 will also fire d2.\n        However, the converse is B{not} true; if d2 is fired d1 will not be\n        affected.\n\n        Note that unlike the case where chaining is caused by a L{Deferred}\n        being returned from a callback, it is possible to cause the call\n        stack size limit to be exceeded by chaining many L{Deferred}s\n        together with C{chainDeferred}.\n\n        @return: C{self}.\n        @rtype: a L{Deferred}\n        " #NEWLINE# d . _chainedTo = self #NEWLINE# return self . addCallbacks ( d . callback , d . errback )