Commits

Jan-Philip Gehrcke committed 9400543

Update docs.

  • Participants
  • Parent commits 2006f1b

Comments (0)

Files changed (2)

File docs/index.rst

     :maxdepth: 2
 
 ========================================
-gipc: multiprocessing and IPC for gevent
+gipc: child processes and IPC for gevent
 ========================================
 
 **Table of contents:**
 application may raise various problems and most likely breaks the application
 in some way. ``gipc`` is developed with the motivation to solve these issues
 transparently and make using ``gevent`` in combination with the basics of
-``multiprocessing`` -- process creation and IPC -- a no-brainer again.
+``multiprocessing``-based child process creation and IPC a no-brainer again.
 
-**With gipc (pronunciation "gipsy") multiprocessing.Process-based child
-processes can safely be created anywhere within your gevent-powered application.
-Furthermore, gipc provides gevent-cooperative inter-process communication and
-useful helper constructs.**
+
+**With gipc (pronunciation “gipsy”) multiprocessing.Process-based child
+processes can safely be created and monitored anywhere within your
+gevent-powered application. Malicious side-effects of child process creation
+in the context of gevent are prevented. The multiprocessing.Process API
+is provided in a gevent-cooperative fashion. Furthermore, gipc provides
+gevent-cooperative inter-process communication and useful helper constructs.**
+
 
 ``gipc`` is lightweight and simple to integrate. In the following code snippet,
 a Python object is sent from a greenlet in the main process to a child
             writelet.join()
             readchild.join()
 
-Although quite simple, this code would have malicious side effects if used with
-the canonical ``p = multiprocessing.Process(); p.start()`` instead of
-``gipc.start_process()``.
+Although quite simple, this code would have various negative side-effects if
+used with the canonical ``multiprocessing`` API instead of
+``gipc.start_process()`` and ``gipc.pipe()``.
 
 
 What are the challenges and what is gipc's approach?

File gipc/gipc.py

         # os.waitpid(). In extreme cases (high-frequent child process
         # creation, short-living child processes), this competes with libev's
         # SIGCHLD handler and may win, resulting in libev not being able to
-        # absorb all SIGCHLD signals corresponding to started children. This
+        # retrieve all SIGCHLD signals corresponding to started children. This
         # could make certain _GProcess.join() calls block forever.
         # -> Prevent multiprocessing.forking.Popen.poll() from calling
         # os.waitpid(). Let libev do the job.