'Return a L{Deferred} which will fire with the next file descriptor
received, or with a failure if the connection is or has already been
lost.'

def waitForDescriptor(self):

    if (self.reason is None):
        self.waiting = Deferred()
        return self.waiting
    else:
        return fail(self.reason)
