annotate Modules/_multiprocessing/pipe_connection.c @ 79675:c0a2294de787 2.7

Issue #16199: Backport 2to3 typo fix from 3.2.
author Chris Jerdonek <chris.jerdonek@gmail.com>
date Thu, 11 Oct 2012 16:15:46 -0700
parents b36cb4602e21
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
1 /*
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
2 * A type which wraps a pipe handle in message oriented mode
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
3 *
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
4 * pipe_connection.c
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
5 *
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
6 * Copyright (c) 2006-2008, R Oudkerk --- see COPYING.txt
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
7 */
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
8
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
9 #include "multiprocessing.h"
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
10
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
11 #define CLOSE(h) CloseHandle(h)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
12
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
13 /*
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
14 * Send string to the pipe; assumes in message oriented mode
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
15 */
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
16
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
17 static Py_ssize_t
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
18 conn_send_string(ConnectionObject *conn, char *string, size_t length)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
19 {
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
20 DWORD amount_written;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
21 BOOL ret;
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
22
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
23 Py_BEGIN_ALLOW_THREADS
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
24 ret = WriteFile(conn->handle, string, length, &amount_written, NULL);
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
25 Py_END_ALLOW_THREADS
52902
d3887dfe661f Merged revisions 70908,70939,71009,71022,71036 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 51569
diff changeset
26
61463
fd25030223b0 Untabify C files. Will watch buildbots.
Antoine Pitrou <solipsis@pitrou.net>
parents: 61262
diff changeset
27 if (ret == 0 && GetLastError() == ERROR_NO_SYSTEM_RESOURCES) {
fd25030223b0 Untabify C files. Will watch buildbots.
Antoine Pitrou <solipsis@pitrou.net>
parents: 61262
diff changeset
28 PyErr_Format(PyExc_ValueError, "Cannnot send %" PY_FORMAT_SIZE_T "d bytes over connection", length);
fd25030223b0 Untabify C files. Will watch buildbots.
Antoine Pitrou <solipsis@pitrou.net>
parents: 61262
diff changeset
29 return MP_STANDARD_ERROR;
fd25030223b0 Untabify C files. Will watch buildbots.
Antoine Pitrou <solipsis@pitrou.net>
parents: 61262
diff changeset
30 }
52902
d3887dfe661f Merged revisions 70908,70939,71009,71022,71036 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 51569
diff changeset
31
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
32 return ret ? MP_SUCCESS : MP_STANDARD_ERROR;
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
33 }
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
34
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
35 /*
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
36 * Attempts to read into buffer, or if buffer too small into *newbuffer.
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
37 *
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
38 * Returns number of bytes read. Assumes in message oriented mode.
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
39 */
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
40
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
41 static Py_ssize_t
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
42 conn_recv_string(ConnectionObject *conn, char *buffer,
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
43 size_t buflength, char **newbuffer, size_t maxlength)
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
44 {
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
45 DWORD left, length, full_length, err;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
46 BOOL ret;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
47 *newbuffer = NULL;
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
48
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
49 Py_BEGIN_ALLOW_THREADS
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
50 ret = ReadFile(conn->handle, buffer, MIN(buflength, maxlength),
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
51 &length, NULL);
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
52 Py_END_ALLOW_THREADS
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
53 if (ret)
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
54 return length;
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
55
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
56 err = GetLastError();
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
57 if (err != ERROR_MORE_DATA) {
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
58 if (err == ERROR_BROKEN_PIPE)
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
59 return MP_END_OF_FILE;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
60 return MP_STANDARD_ERROR;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
61 }
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
62
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
63 if (!PeekNamedPipe(conn->handle, NULL, 0, NULL, NULL, &left))
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
64 return MP_STANDARD_ERROR;
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
65
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
66 full_length = length + left;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
67 if (full_length > maxlength)
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
68 return MP_BAD_MESSAGE_LENGTH;
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
69
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
70 *newbuffer = PyMem_Malloc(full_length);
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
71 if (*newbuffer == NULL)
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
72 return MP_MEMORY_ERROR;
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
73
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
74 memcpy(*newbuffer, buffer, length);
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
75
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
76 Py_BEGIN_ALLOW_THREADS
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
77 ret = ReadFile(conn->handle, *newbuffer+length, left, &length, NULL);
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
78 Py_END_ALLOW_THREADS
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
79 if (ret) {
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
80 assert(length == left);
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
81 return full_length;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
82 } else {
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
83 PyMem_Free(*newbuffer);
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
84 return MP_STANDARD_ERROR;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
85 }
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
86 }
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
87
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
88 /*
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
89 * Check whether any data is available for reading
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
90 */
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
91
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
92 static int
52521
4eeb14a9c5d2 Merged revisions 68787 via svnmerge from
Jesse Noller <jnoller@gmail.com>
parents: 48615
diff changeset
93 conn_poll(ConnectionObject *conn, double timeout, PyThreadState *_save)
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
94 {
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
95 DWORD bytes, deadline, delay;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
96 int difference, res;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
97 BOOL block = FALSE;
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
98
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
99 if (!PeekNamedPipe(conn->handle, NULL, 0, NULL, &bytes, NULL))
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
100 return MP_STANDARD_ERROR;
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
101
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
102 if (timeout == 0.0)
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
103 return bytes > 0;
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
104
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
105 if (timeout < 0.0)
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
106 block = TRUE;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
107 else
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
108 /* XXX does not check for overflow */
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
109 deadline = GetTickCount() + (DWORD)(1000 * timeout + 0.5);
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
110
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
111 Sleep(0);
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
112
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
113 for (delay = 1 ; ; delay += 1) {
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
114 if (!PeekNamedPipe(conn->handle, NULL, 0, NULL, &bytes, NULL))
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
115 return MP_STANDARD_ERROR;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
116 else if (bytes > 0)
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
117 return TRUE;
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
118
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
119 if (!block) {
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
120 difference = deadline - GetTickCount();
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
121 if (difference < 0)
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
122 return FALSE;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
123 if ((int)delay > difference)
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
124 delay = difference;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
125 }
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
126
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
127 if (delay > 20)
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
128 delay = 20;
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
129
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
130 Sleep(delay);
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
131
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
132 /* check for signals */
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
133 Py_BLOCK_THREADS
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
134 res = PyErr_CheckSignals();
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
135 Py_UNBLOCK_THREADS
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
136
61465
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
137 if (res)
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
138 return MP_EXCEPTION_HAS_BEEN_SET;
e38335d4df91 Recorded merge of revisions 81029 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 52521
diff changeset
139 }
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
140 }
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
141
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
142 /*
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
143 * "connection.h" defines the PipeConnection type using the definitions above
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
144 */
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
145
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
146 #define CONNECTION_NAME "PipeConnection"
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
147 #define CONNECTION_TYPE PipeConnectionType
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
148
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
149 #include "connection.h"