'Implement L{IStreamClientEndpoint.connect} to launch a child process
and connect it to a protocol created by C{protocolFactory}.
@param protocolFactory: A factory for an L{IProtocol} provider which
will be notified of all events related to the created process.'

def connect(self, protocolFactory):

    proto = protocolFactory.buildProtocol(_ProcessAddress())
    try:
        self._spawnProcess(_WrapIProtocol(proto, self._executable, self._errFlag), self._executable, self._args, self._env, self._path, self._uid, self._gid, self._usePTY, self._childFDs)
    except:
        return defer.fail()
    else:
        return defer.succeed(proto)
