Process creation is based on ``multiprocessing.Process()``. When working
with gevent, it is highly recommended to start child processes in no other
- way than via via :func:`start_process`. It t
akes care of most of the magic
+ way than via via :func:`start_process`. It t most of the magic
if not isinstance(args, tuple):
+ p.start = lambda *a, **b: sys.stderr.write(
+ "gipc WARNING: Redundant call to %s.start()\n" % p)
is not recommended to call it in the context of this module.
``gipc`` prevents ``multiprocessing`` from calling ``os.waitpid()`` by
monkey-patching ``multiprocessing.forking.Popen.poll`` to always return
+ ``None``. Calling :class:`gipc._GProcess`.join() is not required for
+ cleaning up after zombies. It just waits until the process has
# Remarks regarding child process monitoring on Unix:
+ """Based on original __repr__ from Python 2.7's mp package.
+ if self.exitcode is not None:
+ return '<%s(%s, %s%s)>' % (type(self).__name__, self._name,
+ status, self._daemonic and ' daemon' or '')
def join(self, timeout=None):
Wait cooperatively until child process terminates or timeout occurs.