[pypy-svn] r77822 - in pypy/branch/fast-forward/pypy/module/_multiprocessing: . test
afa at codespeak.net
afa at codespeak.net
Tue Oct 12 13:16:10 CEST 2010
Author: afa
Date: Tue Oct 12 13:16:08 2010
New Revision: 77822
Modified:
pypy/branch/fast-forward/pypy/module/_multiprocessing/interp_win32.py
pypy/branch/fast-forward/pypy/module/_multiprocessing/test/test_win32.py
Log:
Add multiprocessing.win32.WaitNamedPipe()
Modified: pypy/branch/fast-forward/pypy/module/_multiprocessing/interp_win32.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/_multiprocessing/interp_win32.py (original)
+++ pypy/branch/fast-forward/pypy/module/_multiprocessing/interp_win32.py Tue Oct 12 13:16:08 2010
@@ -50,6 +50,10 @@
rwin32.LPDWORD, rwin32.LPDWORD, rwin32.LPDWORD],
rwin32.BOOL)
+_WaitNamedPipe = rwin32.winexternal(
+ 'WaitNamedPipeA', [rwin32.LPCSTR, rwin32.DWORD],
+ rwin32.BOOL)
+
_PeekNamedPipe = rwin32.winexternal(
'PeekNamedPipe', [
rwin32.HANDLE,
@@ -145,6 +149,12 @@
lltype.free(state, flavor='raw')
lltype.free(statep, flavor='raw')
+ at unwrap_spec(ObjSpace, str, r_uint)
+def WaitNamedPipe(space, name, timeout):
+ # Careful: zero means "default value specified by CreateNamedPipe()"
+ if not _WaitNamedPipe(name, timeout):
+ raise wrap_windowserror(space, rwin32.lastWindowsError())
+
@unwrap_spec(ObjSpace, str, r_uint, r_uint, W_Root, r_uint, r_uint, W_Root)
def CreateFile(space, filename, access, share, w_security,
disposition, flags, w_templatefile):
@@ -184,7 +194,7 @@
# functions
for name in ['CloseHandle', 'GetLastError', 'CreateFile',
'CreateNamedPipe', 'ConnectNamedPipe',
- 'SetNamedPipeHandleState',
+ 'SetNamedPipeHandleState', 'WaitNamedPipe',
'ExitProcess',
]:
function = globals()[name]
Modified: pypy/branch/fast-forward/pypy/module/_multiprocessing/test/test_win32.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/_multiprocessing/test/test_win32.py (original)
+++ pypy/branch/fast-forward/pypy/module/_multiprocessing/test/test_win32.py Tue Oct 12 13:16:08 2010
@@ -43,5 +43,8 @@
if e.args[0] != win32.ERROR_PIPE_CONNECTED:
raise
+ exc = raises(WindowsError, win32.WaitNamedPipe, address, timeout=100)
+ assert exc.value.winerror == 121 # ERROR_SEM_TIMEOUT
+
win32.CloseHandle(readhandle)
win32.CloseHandle(writehandle)
More information about the Pypy-commit
mailing list