annotate Modules/_multiprocessing/pipe_connection.c @ 54294:dba767bc3155 legacy-trunk

remove mention of old ctypes version
author Benjamin Peterson <benjamin@python.org>
date Sat, 23 May 2009 20:59:09 +0000
parents d3887dfe661f
children cab14be0ada1 3b58f2441cc8
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 {
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
20 DWORD amount_written;
48611
13ebb4b5d89a Merge 65376 into 3k, fix for issue 3399
Jesse Noller <jnoller@gmail.com>
parents: 47698
diff changeset
21 BOOL ret;
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
22
48611
13ebb4b5d89a Merge 65376 into 3k, fix for issue 3399
Jesse Noller <jnoller@gmail.com>
parents: 47698
diff changeset
23 Py_BEGIN_ALLOW_THREADS
13ebb4b5d89a Merge 65376 into 3k, fix for issue 3399
Jesse Noller <jnoller@gmail.com>
parents: 47698
diff changeset
24 ret = WriteFile(conn->handle, string, length, &amount_written, NULL);
13ebb4b5d89a Merge 65376 into 3k, fix for issue 3399
Jesse Noller <jnoller@gmail.com>
parents: 47698
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
d3887dfe661f Merged revisions 70908,70939,71009,71022,71036 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 51569
diff changeset
27 if (ret == 0 && GetLastError() == ERROR_NO_SYSTEM_RESOURCES) {
d3887dfe661f Merged revisions 70908,70939,71009,71022,71036 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 51569
diff changeset
28 PyErr_Format(PyExc_ValueError, "Cannnot send %" PY_FORMAT_SIZE_T "d bytes over connection", length);
d3887dfe661f Merged revisions 70908,70939,71009,71022,71036 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 51569
diff changeset
29 return MP_STANDARD_ERROR;
d3887dfe661f Merged revisions 70908,70939,71009,71022,71036 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 51569
diff changeset
30 }
d3887dfe661f Merged revisions 70908,70939,71009,71022,71036 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 51569
diff changeset
31
48611
13ebb4b5d89a Merge 65376 into 3k, fix for issue 3399
Jesse Noller <jnoller@gmail.com>
parents: 47698
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
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
42 conn_recv_string(ConnectionObject *conn, char *buffer,
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
43 size_t buflength, char **newbuffer, size_t maxlength)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
44 {
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
45 DWORD left, length, full_length, err;
48611
13ebb4b5d89a Merge 65376 into 3k, fix for issue 3399
Jesse Noller <jnoller@gmail.com>
parents: 47698
diff changeset
46 BOOL ret;
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
47 *newbuffer = NULL;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
48
48611
13ebb4b5d89a Merge 65376 into 3k, fix for issue 3399
Jesse Noller <jnoller@gmail.com>
parents: 47698
diff changeset
49 Py_BEGIN_ALLOW_THREADS
13ebb4b5d89a Merge 65376 into 3k, fix for issue 3399
Jesse Noller <jnoller@gmail.com>
parents: 47698
diff changeset
50 ret = ReadFile(conn->handle, buffer, MIN(buflength, maxlength),
13ebb4b5d89a Merge 65376 into 3k, fix for issue 3399
Jesse Noller <jnoller@gmail.com>
parents: 47698
diff changeset
51 &length, NULL);
13ebb4b5d89a Merge 65376 into 3k, fix for issue 3399
Jesse Noller <jnoller@gmail.com>
parents: 47698
diff changeset
52 Py_END_ALLOW_THREADS
13ebb4b5d89a Merge 65376 into 3k, fix for issue 3399
Jesse Noller <jnoller@gmail.com>
parents: 47698
diff changeset
53 if (ret)
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
54 return length;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
55
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
56 err = GetLastError();
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
57 if (err != ERROR_MORE_DATA) {
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
58 if (err == ERROR_BROKEN_PIPE)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
59 return MP_END_OF_FILE;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
60 return MP_STANDARD_ERROR;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
61 }
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
62
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
63 if (!PeekNamedPipe(conn->handle, NULL, 0, NULL, NULL, &left))
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
64 return MP_STANDARD_ERROR;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
65
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
66 full_length = length + left;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
67 if (full_length > maxlength)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
68 return MP_BAD_MESSAGE_LENGTH;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
69
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
70 *newbuffer = PyMem_Malloc(full_length);
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
71 if (*newbuffer == NULL)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
72 return MP_MEMORY_ERROR;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
73
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
74 memcpy(*newbuffer, buffer, length);
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
75
48611
13ebb4b5d89a Merge 65376 into 3k, fix for issue 3399
Jesse Noller <jnoller@gmail.com>
parents: 47698
diff changeset
76 Py_BEGIN_ALLOW_THREADS
48615
4f46f3f7231b Merged revisions 65385 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 48611
diff changeset
77 ret = ReadFile(conn->handle, *newbuffer+length, left, &length, NULL);
48611
13ebb4b5d89a Merge 65376 into 3k, fix for issue 3399
Jesse Noller <jnoller@gmail.com>
parents: 47698
diff changeset
78 Py_END_ALLOW_THREADS
13ebb4b5d89a Merge 65376 into 3k, fix for issue 3399
Jesse Noller <jnoller@gmail.com>
parents: 47698
diff changeset
79 if (ret) {
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
80 assert(length == left);
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
81 return full_length;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
82 } else {
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
83 PyMem_Free(*newbuffer);
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
84 return MP_STANDARD_ERROR;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
85 }
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
51569
9a932f92f394 Merge 68778,68788 to maint
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 {
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
95 DWORD bytes, deadline, delay;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
96 int difference, res;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
97 BOOL block = FALSE;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
98
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
99 if (!PeekNamedPipe(conn->handle, NULL, 0, NULL, &bytes, NULL))
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
100 return MP_STANDARD_ERROR;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
101
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
102 if (timeout == 0.0)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
103 return bytes > 0;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
104
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
105 if (timeout < 0.0)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
106 block = TRUE;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
107 else
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
108 /* XXX does not check for overflow */
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
109 deadline = GetTickCount() + (DWORD)(1000 * timeout + 0.5);
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
110
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
111 Sleep(0);
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
112
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
113 for (delay = 1 ; ; delay += 1) {
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
114 if (!PeekNamedPipe(conn->handle, NULL, 0, NULL, &bytes, NULL))
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
115 return MP_STANDARD_ERROR;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
116 else if (bytes > 0)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
117 return TRUE;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
118
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
119 if (!block) {
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
120 difference = deadline - GetTickCount();
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
121 if (difference < 0)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
122 return FALSE;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
123 if ((int)delay > difference)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
124 delay = difference;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
125 }
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
126
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
127 if (delay > 20)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
128 delay = 20;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
129
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
130 Sleep(delay);
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
131
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
132 /* check for signals */
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
133 Py_BLOCK_THREADS
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
134 res = PyErr_CheckSignals();
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
135 Py_UNBLOCK_THREADS
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
136
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
137 if (res)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
138 return MP_EXCEPTION_HAS_BEEN_SET;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
139 }
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"