New submission from Alexander Myodov <amyo...@gmail.com>:

I am using Python 2.6.5/win32, and working with multiprocessing module, doing 
that with Python interpreter embedded using Cython (if that may be related to 
the problem).

While creating a subprocess and a Pipe to communicate with it, I've got the 
following traceback (particulaly on the line "parent_conn, child_conn = 
Pipe()"):

Traceback (most recent call last):
  File "test_fork.py", line 24, in init test_fork (test_fork.c:810)
    vasia.main()
  File "Z:\multiprocessing_cython_w32\vasia.py", line 15, in main
    parent_conn, child_conn = Pipe()
  File "Z:\python-win32\2.6.5\Lib\multiprocessing\__init__.py", line 106, in 
Pipe
    return Pipe(duplex)
  File "Z:\python-win32\2.6.5\Lib\multiprocessing\connection.py", line 202, in 
Pipe
    h2, win32.PIPE_READMODE_MESSAGE, None, None
WindowsError: [Error 0] Success

Lines 202-204 in multiprocessing/connection.py contain the following: 

        win32.SetNamedPipeHandleState(                                          
                                                   
            h2, win32.PIPE_READMODE_MESSAGE, None, None                         
                                                   
            ) 

It seems to me that for some reason SetNamedPipeHandleState might be returning 
0 even while it didn't fail actually; a quick check confirmed that it could be 
fixed by changing the above lines to the following:

        try:                                                                    
                                                   
            win32.SetNamedPipeHandleState(                                      
                                                   
                h2, win32.PIPE_READMODE_MESSAGE, None, None                     
                                                   
                )                                                               
                                                   
        except WindowsError, e:                                                 
                                                   
(win32)                                                                         
                              
            if e.args[0] != 0: # 0 is error code for SUCCESS                    
                                                   
                raise

----------
components: Extension Modules, Windows
messages: 108824
nosy: honeyman
priority: normal
severity: normal
status: open
title: multiprocessing/win32:
type: behavior
versions: Python 2.6

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue9099>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to