mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	Recorded merge of revisions 81032 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
  r81032 | antoine.pitrou | 2010-05-09 17:52:27 +0200 (dim., 09 mai 2010) | 9 lines
  Recorded merge of revisions 81029 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk
  ........
    r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines
    Untabify C files. Will watch buildbots.
  ........
................
			
			
This commit is contained in:
		
							parent
							
								
									b7d943625c
								
							
						
					
					
						commit
						7f14f0d8a0
					
				
					 251 changed files with 111553 additions and 111553 deletions
				
			
		|  | @ -19,248 +19,248 @@ | |||
| static PyObject * | ||||
| win32_CloseHandle(PyObject *self, PyObject *args) | ||||
| { | ||||
| 	HANDLE hObject; | ||||
| 	BOOL success; | ||||
|     HANDLE hObject; | ||||
|     BOOL success; | ||||
| 
 | ||||
| 	if (!PyArg_ParseTuple(args, F_HANDLE, &hObject)) | ||||
| 		return NULL; | ||||
|     if (!PyArg_ParseTuple(args, F_HANDLE, &hObject)) | ||||
|         return NULL; | ||||
| 
 | ||||
| 	Py_BEGIN_ALLOW_THREADS | ||||
| 	success = CloseHandle(hObject);  | ||||
| 	Py_END_ALLOW_THREADS | ||||
|     Py_BEGIN_ALLOW_THREADS | ||||
|     success = CloseHandle(hObject); | ||||
|     Py_END_ALLOW_THREADS | ||||
| 
 | ||||
| 	if (!success) | ||||
| 		return PyErr_SetFromWindowsErr(0); | ||||
|     if (!success) | ||||
|         return PyErr_SetFromWindowsErr(0); | ||||
| 
 | ||||
| 	Py_RETURN_NONE; | ||||
|     Py_RETURN_NONE; | ||||
| } | ||||
| 
 | ||||
| static PyObject * | ||||
| win32_ConnectNamedPipe(PyObject *self, PyObject *args) | ||||
| { | ||||
| 	HANDLE hNamedPipe; | ||||
| 	LPOVERLAPPED lpOverlapped; | ||||
| 	BOOL success; | ||||
|     HANDLE hNamedPipe; | ||||
|     LPOVERLAPPED lpOverlapped; | ||||
|     BOOL success; | ||||
| 
 | ||||
| 	if (!PyArg_ParseTuple(args, F_HANDLE F_POINTER,  | ||||
| 			      &hNamedPipe, &lpOverlapped)) | ||||
| 		return NULL; | ||||
|     if (!PyArg_ParseTuple(args, F_HANDLE F_POINTER, | ||||
|                           &hNamedPipe, &lpOverlapped)) | ||||
|         return NULL; | ||||
| 
 | ||||
| 	Py_BEGIN_ALLOW_THREADS | ||||
| 	success = ConnectNamedPipe(hNamedPipe, lpOverlapped); | ||||
| 	Py_END_ALLOW_THREADS | ||||
|     Py_BEGIN_ALLOW_THREADS | ||||
|     success = ConnectNamedPipe(hNamedPipe, lpOverlapped); | ||||
|     Py_END_ALLOW_THREADS | ||||
| 
 | ||||
| 	if (!success) | ||||
| 		return PyErr_SetFromWindowsErr(0); | ||||
|     if (!success) | ||||
|         return PyErr_SetFromWindowsErr(0); | ||||
| 
 | ||||
| 	Py_RETURN_NONE; | ||||
|     Py_RETURN_NONE; | ||||
| } | ||||
| 
 | ||||
| static PyObject * | ||||
| win32_CreateFile(PyObject *self, PyObject *args) | ||||
| { | ||||
| 	LPCTSTR lpFileName; | ||||
| 	DWORD dwDesiredAccess; | ||||
| 	DWORD dwShareMode; | ||||
| 	LPSECURITY_ATTRIBUTES lpSecurityAttributes; | ||||
| 	DWORD dwCreationDisposition; | ||||
| 	DWORD dwFlagsAndAttributes; | ||||
| 	HANDLE hTemplateFile; | ||||
| 	HANDLE handle; | ||||
|     LPCTSTR lpFileName; | ||||
|     DWORD dwDesiredAccess; | ||||
|     DWORD dwShareMode; | ||||
|     LPSECURITY_ATTRIBUTES lpSecurityAttributes; | ||||
|     DWORD dwCreationDisposition; | ||||
|     DWORD dwFlagsAndAttributes; | ||||
|     HANDLE hTemplateFile; | ||||
|     HANDLE handle; | ||||
| 
 | ||||
| 	if (!PyArg_ParseTuple(args, "s" F_DWORD F_DWORD F_POINTER  | ||||
| 			      F_DWORD F_DWORD F_HANDLE, | ||||
| 			      &lpFileName, &dwDesiredAccess, &dwShareMode,  | ||||
| 			      &lpSecurityAttributes, &dwCreationDisposition,  | ||||
| 			      &dwFlagsAndAttributes, &hTemplateFile)) | ||||
| 		return NULL; | ||||
|     if (!PyArg_ParseTuple(args, "s" F_DWORD F_DWORD F_POINTER | ||||
|                           F_DWORD F_DWORD F_HANDLE, | ||||
|                           &lpFileName, &dwDesiredAccess, &dwShareMode, | ||||
|                           &lpSecurityAttributes, &dwCreationDisposition, | ||||
|                           &dwFlagsAndAttributes, &hTemplateFile)) | ||||
|         return NULL; | ||||
| 
 | ||||
| 	Py_BEGIN_ALLOW_THREADS | ||||
| 	handle = CreateFile(lpFileName, dwDesiredAccess,  | ||||
| 			    dwShareMode, lpSecurityAttributes,  | ||||
| 			    dwCreationDisposition,  | ||||
| 			    dwFlagsAndAttributes, hTemplateFile); | ||||
| 	Py_END_ALLOW_THREADS | ||||
|     Py_BEGIN_ALLOW_THREADS | ||||
|     handle = CreateFile(lpFileName, dwDesiredAccess, | ||||
|                         dwShareMode, lpSecurityAttributes, | ||||
|                         dwCreationDisposition, | ||||
|                         dwFlagsAndAttributes, hTemplateFile); | ||||
|     Py_END_ALLOW_THREADS | ||||
| 
 | ||||
| 	if (handle == INVALID_HANDLE_VALUE) | ||||
| 		return PyErr_SetFromWindowsErr(0); | ||||
|     if (handle == INVALID_HANDLE_VALUE) | ||||
|         return PyErr_SetFromWindowsErr(0); | ||||
| 
 | ||||
| 	return Py_BuildValue(F_HANDLE, handle); | ||||
|     return Py_BuildValue(F_HANDLE, handle); | ||||
| } | ||||
| 
 | ||||
| static PyObject * | ||||
| win32_CreateNamedPipe(PyObject *self, PyObject *args) | ||||
| { | ||||
| 	LPCTSTR lpName; | ||||
| 	DWORD dwOpenMode; | ||||
| 	DWORD dwPipeMode; | ||||
| 	DWORD nMaxInstances; | ||||
| 	DWORD nOutBufferSize; | ||||
| 	DWORD nInBufferSize; | ||||
| 	DWORD nDefaultTimeOut; | ||||
| 	LPSECURITY_ATTRIBUTES lpSecurityAttributes; | ||||
| 	HANDLE handle; | ||||
|     LPCTSTR lpName; | ||||
|     DWORD dwOpenMode; | ||||
|     DWORD dwPipeMode; | ||||
|     DWORD nMaxInstances; | ||||
|     DWORD nOutBufferSize; | ||||
|     DWORD nInBufferSize; | ||||
|     DWORD nDefaultTimeOut; | ||||
|     LPSECURITY_ATTRIBUTES lpSecurityAttributes; | ||||
|     HANDLE handle; | ||||
| 
 | ||||
| 	if (!PyArg_ParseTuple(args, "s" F_DWORD F_DWORD F_DWORD  | ||||
| 			      F_DWORD F_DWORD F_DWORD F_POINTER, | ||||
| 			      &lpName, &dwOpenMode, &dwPipeMode,  | ||||
| 			      &nMaxInstances, &nOutBufferSize,  | ||||
| 			      &nInBufferSize, &nDefaultTimeOut, | ||||
| 			      &lpSecurityAttributes)) | ||||
| 		return NULL; | ||||
|     if (!PyArg_ParseTuple(args, "s" F_DWORD F_DWORD F_DWORD | ||||
|                           F_DWORD F_DWORD F_DWORD F_POINTER, | ||||
|                           &lpName, &dwOpenMode, &dwPipeMode, | ||||
|                           &nMaxInstances, &nOutBufferSize, | ||||
|                           &nInBufferSize, &nDefaultTimeOut, | ||||
|                           &lpSecurityAttributes)) | ||||
|         return NULL; | ||||
| 
 | ||||
| 	Py_BEGIN_ALLOW_THREADS | ||||
| 	handle = CreateNamedPipe(lpName, dwOpenMode, dwPipeMode,  | ||||
| 				 nMaxInstances, nOutBufferSize,  | ||||
| 				 nInBufferSize, nDefaultTimeOut, | ||||
| 				 lpSecurityAttributes); | ||||
| 	Py_END_ALLOW_THREADS | ||||
|     Py_BEGIN_ALLOW_THREADS | ||||
|     handle = CreateNamedPipe(lpName, dwOpenMode, dwPipeMode, | ||||
|                              nMaxInstances, nOutBufferSize, | ||||
|                              nInBufferSize, nDefaultTimeOut, | ||||
|                              lpSecurityAttributes); | ||||
|     Py_END_ALLOW_THREADS | ||||
| 
 | ||||
| 	if (handle == INVALID_HANDLE_VALUE) | ||||
| 		return PyErr_SetFromWindowsErr(0); | ||||
|     if (handle == INVALID_HANDLE_VALUE) | ||||
|         return PyErr_SetFromWindowsErr(0); | ||||
| 
 | ||||
| 	return Py_BuildValue(F_HANDLE, handle); | ||||
|     return Py_BuildValue(F_HANDLE, handle); | ||||
| } | ||||
| 
 | ||||
| static PyObject * | ||||
| win32_ExitProcess(PyObject *self, PyObject *args) | ||||
| { | ||||
| 	UINT uExitCode; | ||||
|     UINT uExitCode; | ||||
| 
 | ||||
| 	if (!PyArg_ParseTuple(args, "I", &uExitCode)) | ||||
| 		return NULL; | ||||
|     if (!PyArg_ParseTuple(args, "I", &uExitCode)) | ||||
|         return NULL; | ||||
| 
 | ||||
| 	#if defined(Py_DEBUG) | ||||
| 		SetErrorMode(SEM_FAILCRITICALERRORS|SEM_NOALIGNMENTFAULTEXCEPT|SEM_NOGPFAULTERRORBOX|SEM_NOOPENFILEERRORBOX); | ||||
| 		_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_DEBUG); | ||||
| 	#endif | ||||
|     #if defined(Py_DEBUG) | ||||
|         SetErrorMode(SEM_FAILCRITICALERRORS|SEM_NOALIGNMENTFAULTEXCEPT|SEM_NOGPFAULTERRORBOX|SEM_NOOPENFILEERRORBOX); | ||||
|         _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_DEBUG); | ||||
|     #endif | ||||
| 
 | ||||
| 
 | ||||
| 	ExitProcess(uExitCode); | ||||
|     ExitProcess(uExitCode); | ||||
| 
 | ||||
| 	return NULL; | ||||
|     return NULL; | ||||
| } | ||||
| 
 | ||||
| static PyObject * | ||||
| win32_GetLastError(PyObject *self, PyObject *args) | ||||
| { | ||||
| 	return Py_BuildValue(F_DWORD, GetLastError()); | ||||
|     return Py_BuildValue(F_DWORD, GetLastError()); | ||||
| } | ||||
| 
 | ||||
| static PyObject * | ||||
| win32_OpenProcess(PyObject *self, PyObject *args) | ||||
| { | ||||
| 	DWORD dwDesiredAccess; | ||||
| 	BOOL bInheritHandle; | ||||
| 	DWORD dwProcessId; | ||||
| 	HANDLE handle; | ||||
|     DWORD dwDesiredAccess; | ||||
|     BOOL bInheritHandle; | ||||
|     DWORD dwProcessId; | ||||
|     HANDLE handle; | ||||
| 
 | ||||
| 	if (!PyArg_ParseTuple(args, F_DWORD "i" F_DWORD,  | ||||
| 			      &dwDesiredAccess, &bInheritHandle, &dwProcessId)) | ||||
| 		return NULL; | ||||
|     if (!PyArg_ParseTuple(args, F_DWORD "i" F_DWORD, | ||||
|                           &dwDesiredAccess, &bInheritHandle, &dwProcessId)) | ||||
|         return NULL; | ||||
| 
 | ||||
| 	handle = OpenProcess(dwDesiredAccess, bInheritHandle, dwProcessId);     | ||||
| 	if (handle == NULL) | ||||
| 		return PyErr_SetFromWindowsErr(0); | ||||
|     handle = OpenProcess(dwDesiredAccess, bInheritHandle, dwProcessId); | ||||
|     if (handle == NULL) | ||||
|         return PyErr_SetFromWindowsErr(0); | ||||
| 
 | ||||
| 	return Py_BuildValue(F_HANDLE, handle); | ||||
|     return Py_BuildValue(F_HANDLE, handle); | ||||
| } | ||||
| 
 | ||||
| static PyObject * | ||||
| win32_SetNamedPipeHandleState(PyObject *self, PyObject *args) | ||||
| { | ||||
| 	HANDLE hNamedPipe; | ||||
| 	PyObject *oArgs[3]; | ||||
| 	DWORD dwArgs[3], *pArgs[3] = {NULL, NULL, NULL}; | ||||
| 	int i; | ||||
|     HANDLE hNamedPipe; | ||||
|     PyObject *oArgs[3]; | ||||
|     DWORD dwArgs[3], *pArgs[3] = {NULL, NULL, NULL}; | ||||
|     int i; | ||||
| 
 | ||||
| 	if (!PyArg_ParseTuple(args, F_HANDLE "OOO",  | ||||
| 			      &hNamedPipe, &oArgs[0], &oArgs[1], &oArgs[2])) | ||||
| 		return NULL; | ||||
|     if (!PyArg_ParseTuple(args, F_HANDLE "OOO", | ||||
|                           &hNamedPipe, &oArgs[0], &oArgs[1], &oArgs[2])) | ||||
|         return NULL; | ||||
| 
 | ||||
| 	PyErr_Clear(); | ||||
|     PyErr_Clear(); | ||||
| 
 | ||||
| 	for (i = 0 ; i < 3 ; i++) { | ||||
| 		if (oArgs[i] != Py_None) { | ||||
| 			dwArgs[i] = PyLong_AsUnsignedLongMask(oArgs[i]); | ||||
| 			if (PyErr_Occurred()) | ||||
| 				return NULL; | ||||
| 			pArgs[i] = &dwArgs[i]; | ||||
| 		} | ||||
| 	} | ||||
|     for (i = 0 ; i < 3 ; i++) { | ||||
|         if (oArgs[i] != Py_None) { | ||||
|             dwArgs[i] = PyLong_AsUnsignedLongMask(oArgs[i]); | ||||
|             if (PyErr_Occurred()) | ||||
|                 return NULL; | ||||
|             pArgs[i] = &dwArgs[i]; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
| 	if (!SetNamedPipeHandleState(hNamedPipe, pArgs[0], pArgs[1], pArgs[2])) | ||||
| 		return PyErr_SetFromWindowsErr(0); | ||||
|     if (!SetNamedPipeHandleState(hNamedPipe, pArgs[0], pArgs[1], pArgs[2])) | ||||
|         return PyErr_SetFromWindowsErr(0); | ||||
| 
 | ||||
| 	Py_RETURN_NONE; | ||||
|     Py_RETURN_NONE; | ||||
| } | ||||
| 
 | ||||
| static PyObject * | ||||
| win32_WaitNamedPipe(PyObject *self, PyObject *args) | ||||
| { | ||||
| 	LPCTSTR lpNamedPipeName; | ||||
| 	DWORD nTimeOut; | ||||
| 	BOOL success; | ||||
|     LPCTSTR lpNamedPipeName; | ||||
|     DWORD nTimeOut; | ||||
|     BOOL success; | ||||
| 
 | ||||
| 	if (!PyArg_ParseTuple(args, "s" F_DWORD, &lpNamedPipeName, &nTimeOut)) | ||||
| 		return NULL; | ||||
|     if (!PyArg_ParseTuple(args, "s" F_DWORD, &lpNamedPipeName, &nTimeOut)) | ||||
|         return NULL; | ||||
| 
 | ||||
| 	Py_BEGIN_ALLOW_THREADS | ||||
| 	success = WaitNamedPipe(lpNamedPipeName, nTimeOut); | ||||
| 	Py_END_ALLOW_THREADS | ||||
|     Py_BEGIN_ALLOW_THREADS | ||||
|     success = WaitNamedPipe(lpNamedPipeName, nTimeOut); | ||||
|     Py_END_ALLOW_THREADS | ||||
| 
 | ||||
| 	if (!success) | ||||
| 		return PyErr_SetFromWindowsErr(0); | ||||
|     if (!success) | ||||
|         return PyErr_SetFromWindowsErr(0); | ||||
| 
 | ||||
| 	Py_RETURN_NONE; | ||||
|     Py_RETURN_NONE; | ||||
| } | ||||
| 
 | ||||
| static PyMethodDef win32_methods[] = { | ||||
| 	WIN32_FUNCTION(CloseHandle), | ||||
| 	WIN32_FUNCTION(GetLastError), | ||||
| 	WIN32_FUNCTION(OpenProcess), | ||||
| 	WIN32_FUNCTION(ExitProcess), | ||||
| 	WIN32_FUNCTION(ConnectNamedPipe), | ||||
| 	WIN32_FUNCTION(CreateFile), | ||||
| 	WIN32_FUNCTION(CreateNamedPipe), | ||||
| 	WIN32_FUNCTION(SetNamedPipeHandleState), | ||||
| 	WIN32_FUNCTION(WaitNamedPipe), | ||||
| 	{NULL} | ||||
|     WIN32_FUNCTION(CloseHandle), | ||||
|     WIN32_FUNCTION(GetLastError), | ||||
|     WIN32_FUNCTION(OpenProcess), | ||||
|     WIN32_FUNCTION(ExitProcess), | ||||
|     WIN32_FUNCTION(ConnectNamedPipe), | ||||
|     WIN32_FUNCTION(CreateFile), | ||||
|     WIN32_FUNCTION(CreateNamedPipe), | ||||
|     WIN32_FUNCTION(SetNamedPipeHandleState), | ||||
|     WIN32_FUNCTION(WaitNamedPipe), | ||||
|     {NULL} | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| PyTypeObject Win32Type = { | ||||
| 	PyVarObject_HEAD_INIT(NULL, 0) | ||||
|     PyVarObject_HEAD_INIT(NULL, 0) | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| PyObject * | ||||
| create_win32_namespace(void) | ||||
| { | ||||
| 	Win32Type.tp_name = "_multiprocessing.win32"; | ||||
| 	Win32Type.tp_methods = win32_methods; | ||||
| 	if (PyType_Ready(&Win32Type) < 0) | ||||
| 		return NULL; | ||||
| 	Py_INCREF(&Win32Type); | ||||
|     Win32Type.tp_name = "_multiprocessing.win32"; | ||||
|     Win32Type.tp_methods = win32_methods; | ||||
|     if (PyType_Ready(&Win32Type) < 0) | ||||
|         return NULL; | ||||
|     Py_INCREF(&Win32Type); | ||||
| 
 | ||||
| 	WIN32_CONSTANT(F_DWORD, ERROR_ALREADY_EXISTS); | ||||
| 	WIN32_CONSTANT(F_DWORD, ERROR_PIPE_BUSY); | ||||
| 	WIN32_CONSTANT(F_DWORD, ERROR_PIPE_CONNECTED); | ||||
| 	WIN32_CONSTANT(F_DWORD, ERROR_SEM_TIMEOUT); | ||||
| 	WIN32_CONSTANT(F_DWORD, GENERIC_READ); | ||||
| 	WIN32_CONSTANT(F_DWORD, GENERIC_WRITE); | ||||
| 	WIN32_CONSTANT(F_DWORD, INFINITE); | ||||
| 	WIN32_CONSTANT(F_DWORD, NMPWAIT_WAIT_FOREVER); | ||||
| 	WIN32_CONSTANT(F_DWORD, OPEN_EXISTING); | ||||
| 	WIN32_CONSTANT(F_DWORD, PIPE_ACCESS_DUPLEX); | ||||
| 	WIN32_CONSTANT(F_DWORD, PIPE_ACCESS_INBOUND); | ||||
| 	WIN32_CONSTANT(F_DWORD, PIPE_READMODE_MESSAGE); | ||||
| 	WIN32_CONSTANT(F_DWORD, PIPE_TYPE_MESSAGE); | ||||
| 	WIN32_CONSTANT(F_DWORD, PIPE_UNLIMITED_INSTANCES); | ||||
| 	WIN32_CONSTANT(F_DWORD, PIPE_WAIT); | ||||
| 	WIN32_CONSTANT(F_DWORD, PROCESS_ALL_ACCESS); | ||||
|     WIN32_CONSTANT(F_DWORD, ERROR_ALREADY_EXISTS); | ||||
|     WIN32_CONSTANT(F_DWORD, ERROR_PIPE_BUSY); | ||||
|     WIN32_CONSTANT(F_DWORD, ERROR_PIPE_CONNECTED); | ||||
|     WIN32_CONSTANT(F_DWORD, ERROR_SEM_TIMEOUT); | ||||
|     WIN32_CONSTANT(F_DWORD, GENERIC_READ); | ||||
|     WIN32_CONSTANT(F_DWORD, GENERIC_WRITE); | ||||
|     WIN32_CONSTANT(F_DWORD, INFINITE); | ||||
|     WIN32_CONSTANT(F_DWORD, NMPWAIT_WAIT_FOREVER); | ||||
|     WIN32_CONSTANT(F_DWORD, OPEN_EXISTING); | ||||
|     WIN32_CONSTANT(F_DWORD, PIPE_ACCESS_DUPLEX); | ||||
|     WIN32_CONSTANT(F_DWORD, PIPE_ACCESS_INBOUND); | ||||
|     WIN32_CONSTANT(F_DWORD, PIPE_READMODE_MESSAGE); | ||||
|     WIN32_CONSTANT(F_DWORD, PIPE_TYPE_MESSAGE); | ||||
|     WIN32_CONSTANT(F_DWORD, PIPE_UNLIMITED_INSTANCES); | ||||
|     WIN32_CONSTANT(F_DWORD, PIPE_WAIT); | ||||
|     WIN32_CONSTANT(F_DWORD, PROCESS_ALL_ACCESS); | ||||
| 
 | ||||
| 	WIN32_CONSTANT("i", NULL); | ||||
|     WIN32_CONSTANT("i", NULL); | ||||
| 
 | ||||
| 	return (PyObject*)&Win32Type; | ||||
|     return (PyObject*)&Win32Type; | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Antoine Pitrou
						Antoine Pitrou