'@type protocol: L{ProcessAliasProtocol}
@param protocol: The protocol associated with the child process.
@type process: L{bytes} or L{None}
@param process: The process name.
@type reactor: L{None} or L{IReactorTime
<twisted.internet.interfaces.IReactorTime>} provider
@param reactor: A reactor which will be used to schedule timeouts.'

def __init__(self, protocol, process=None, reactor=None):

    self.processName = process
    self.protocol = protocol
    self.completion = defer.Deferred()
    self.protocol.onEnd = self.completion
    self.completion.addBoth(self._processEnded)
    if (reactor is not None):
        self.reactor = reactor
