Removed hooke.compat.forking since issue8534 can't be monkey patched.
authorW. Trevor King <wking@drexel.edu>
Fri, 13 Aug 2010 11:31:19 +0000 (07:31 -0400)
committerW. Trevor King <wking@drexel.edu>
Fri, 13 Aug 2010 11:31:19 +0000 (07:31 -0400)
commit40a2a345c07bf63336829a52fdbdcfb7a8bd99a5
tree647c58f04d29221625d580c18890cd6b4355d05b
parentcb46e372bea4b534af64c1150ff6901e7a17eaa1
Removed hooke.compat.forking since issue8534 can't be monkey patched.

You'll have to apply simonsteiner's issue8534 patch
  http://bugs.python.org/file17092/forking.patch
to your Python's multiprocessing.forking by hand (on MS Windows).  See
  http://bugs.python.org/issue8534
  http://docs.python.org/library/multiprocessing.html#windows

Here's what happens on Linux:
  1) main program starts running
  2) monkey patch applied
  3) multiprocessing.Process() forks off the subprocess.
    a) child process inherits parent's memory, getting all currently
       imported libraries for free.
    b) child process continues successful run.
  4) main process continues successful run.

Here's what happens on MS Windows:
  1) main program starts running
  2) monkey patch applied
  3) multiprocessing.Process() spawns subprocess, feeding its pickling
     state to the child through the connecting socket.
    a) child process starts, loading (unpatched) base Python libraries
       to figure out what it should do.
    b) child process starts reading pickled parent state.
    c) child process attempts to find hooke to unpickle parent state.
    d) child process cannot find hooke (with unpatched
       multiprocessing) and dies.
  4) main process dies from lack of child.

After applying simonsteiner's issue8534 patch, Windows looks like:
  1) main program starts running
  2) multiprocessing.Process() spawns subprocess, feeding its pickling
     state to the child through the connecting socket.
    a) child process starts, loading (patched) base Python libraries
       to figure out what it should do.
    b) child process starts reading pickled parent state.
    c) child process attempts to find hooke to unpickle parent state.
    d) child process loads hooke.
    e) child process continues successful run.
  3) main process continues successful run.
hooke/compat/forking.py [deleted file]
hooke/hooke.py