annotate Modules/_multiprocessing/multiprocessing.h @ 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 1086d7ee8b0b
children edcfe3b8f736
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 #ifndef MULTIPROCESSING_H
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
2 #define MULTIPROCESSING_H
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 #define PY_SSIZE_T_CLEAN
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 #include "Python.h"
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
7 #include "structmember.h"
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
8 #include "pythread.h"
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
9
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 * Platform includes and definitions
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 #ifdef MS_WINDOWS
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
15 # define WIN32_LEAN_AND_MEAN
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
16 # include <windows.h>
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
17 # include <winsock2.h>
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
18 # include <process.h> /* getpid() */
52934
d3470bc6d191 Merged revisions 70987 via svnmerge from
Hirokazu Yamamoto <ocean-city@m2.ccsnet.ne.jp>
parents: 49642
diff changeset
19 # ifdef Py_DEBUG
d3470bc6d191 Merged revisions 70987 via svnmerge from
Hirokazu Yamamoto <ocean-city@m2.ccsnet.ne.jp>
parents: 49642
diff changeset
20 # include <crtdbg.h>
d3470bc6d191 Merged revisions 70987 via svnmerge from
Hirokazu Yamamoto <ocean-city@m2.ccsnet.ne.jp>
parents: 49642
diff changeset
21 # endif
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
22 # define SEM_HANDLE HANDLE
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
23 # define SEM_VALUE_MAX LONG_MAX
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
24 #else
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
25 # include <fcntl.h> /* O_CREAT and O_EXCL */
49642
c089eb64ee57 Merged revisions 67098 via svnmerge from
Martin v. Löwis <martin@v.loewis.de>
parents: 49139
diff changeset
26 # include <netinet/in.h>
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
27 # include <sys/socket.h>
49642
c089eb64ee57 Merged revisions 67098 via svnmerge from
Martin v. Löwis <martin@v.loewis.de>
parents: 49139
diff changeset
28 # include <sys/uio.h>
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
29 # include <arpa/inet.h> /* htonl() and ntohl() */
52696
d343e802b276 issue5545: Switch to Autoconf for multiprocessing; special thanks to Martin Lowis for help
Jesse Noller <jnoller@gmail.com>
parents: 52934
diff changeset
30 # ifdef HAVE_SEM_OPEN
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
31 # include <semaphore.h>
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
32 typedef sem_t *SEM_HANDLE;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
33 # endif
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
34 # define HANDLE int
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
35 # define SOCKET int
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
36 # define BOOL int
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
37 # define UINT32 uint32_t
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
38 # define INT32 int32_t
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
39 # define TRUE 1
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
40 # define FALSE 0
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
41 # define INVALID_HANDLE_VALUE (-1)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
42 #endif
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
43
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
44 /*
48985
06f54e11a08b merge 66184 to fix issue3110 to py3k
Jesse Noller <jnoller@gmail.com>
parents: 47698
diff changeset
45 * Issue 3110 - Solaris does not define SEM_VALUE_MAX
06f54e11a08b merge 66184 to fix issue3110 to py3k
Jesse Noller <jnoller@gmail.com>
parents: 47698
diff changeset
46 */
06f54e11a08b merge 66184 to fix issue3110 to py3k
Jesse Noller <jnoller@gmail.com>
parents: 47698
diff changeset
47 #ifndef SEM_VALUE_MAX
52709
1086d7ee8b0b Issue 3110: Additional protection for SEM_VALUE_MAX on platforms, thanks to Martin Loewis
Jesse Noller <jnoller@gmail.com>
parents: 52696
diff changeset
48 #if defined(HAVE_SYSCONF) && defined(_SC_SEM_VALUE_MAX)
1086d7ee8b0b Issue 3110: Additional protection for SEM_VALUE_MAX on platforms, thanks to Martin Loewis
Jesse Noller <jnoller@gmail.com>
parents: 52696
diff changeset
49 # define SEM_VALUE_MAX sysconf(_SC_SEM_VALUE_MAX)
1086d7ee8b0b Issue 3110: Additional protection for SEM_VALUE_MAX on platforms, thanks to Martin Loewis
Jesse Noller <jnoller@gmail.com>
parents: 52696
diff changeset
50 #elif defined(_SEM_VALUE_MAX)
1086d7ee8b0b Issue 3110: Additional protection for SEM_VALUE_MAX on platforms, thanks to Martin Loewis
Jesse Noller <jnoller@gmail.com>
parents: 52696
diff changeset
51 # define SEM_VALUE_MAX _SEM_VALUE_MAX
1086d7ee8b0b Issue 3110: Additional protection for SEM_VALUE_MAX on platforms, thanks to Martin Loewis
Jesse Noller <jnoller@gmail.com>
parents: 52696
diff changeset
52 #elif definef(_POSIX_SEM_VALUE_MAX)
1086d7ee8b0b Issue 3110: Additional protection for SEM_VALUE_MAX on platforms, thanks to Martin Loewis
Jesse Noller <jnoller@gmail.com>
parents: 52696
diff changeset
53 # define SEM_VALUE_MAX _POSIX_SEM_VALUE_MAX
1086d7ee8b0b Issue 3110: Additional protection for SEM_VALUE_MAX on platforms, thanks to Martin Loewis
Jesse Noller <jnoller@gmail.com>
parents: 52696
diff changeset
54 #else
1086d7ee8b0b Issue 3110: Additional protection for SEM_VALUE_MAX on platforms, thanks to Martin Loewis
Jesse Noller <jnoller@gmail.com>
parents: 52696
diff changeset
55 # define SEM_VALUE_MAX INT_MAX
1086d7ee8b0b Issue 3110: Additional protection for SEM_VALUE_MAX on platforms, thanks to Martin Loewis
Jesse Noller <jnoller@gmail.com>
parents: 52696
diff changeset
56 #endif
48985
06f54e11a08b merge 66184 to fix issue3110 to py3k
Jesse Noller <jnoller@gmail.com>
parents: 47698
diff changeset
57 #endif
06f54e11a08b merge 66184 to fix issue3110 to py3k
Jesse Noller <jnoller@gmail.com>
parents: 47698
diff changeset
58
52709
1086d7ee8b0b Issue 3110: Additional protection for SEM_VALUE_MAX on platforms, thanks to Martin Loewis
Jesse Noller <jnoller@gmail.com>
parents: 52696
diff changeset
59
48985
06f54e11a08b merge 66184 to fix issue3110 to py3k
Jesse Noller <jnoller@gmail.com>
parents: 47698
diff changeset
60 /*
47698
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
61 * Make sure Py_ssize_t available
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
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
64 #if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
65 typedef int Py_ssize_t;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
66 # define PY_SSIZE_T_MAX INT_MAX
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
67 # define PY_SSIZE_T_MIN INT_MIN
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
68 # define F_PY_SSIZE_T "i"
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
69 # define PyInt_FromSsize_t(n) PyInt_FromLong((long)n)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
70 #else
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
71 # define F_PY_SSIZE_T "n"
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
72 #endif
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 /*
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
75 * Format codes
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
76 */
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
77
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
78 #if SIZEOF_VOID_P == SIZEOF_LONG
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
79 # define F_POINTER "k"
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
80 # define T_POINTER T_ULONG
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
81 #elif defined(HAVE_LONG_LONG) && (SIZEOF_VOID_P == SIZEOF_LONG_LONG)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
82 # define F_POINTER "K"
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
83 # define T_POINTER T_ULONGLONG
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
84 #else
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
85 # error "can't find format code for unsigned integer of same size as void*"
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
86 #endif
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 #ifdef MS_WINDOWS
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
89 # define F_HANDLE F_POINTER
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
90 # define T_HANDLE T_POINTER
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
91 # define F_SEM_HANDLE F_HANDLE
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
92 # define T_SEM_HANDLE T_HANDLE
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
93 # define F_DWORD "k"
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
94 # define T_DWORD T_ULONG
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
95 #else
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
96 # define F_HANDLE "i"
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
97 # define T_HANDLE T_INT
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
98 # define F_SEM_HANDLE F_POINTER
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
99 # define T_SEM_HANDLE T_POINTER
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
100 #endif
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 PY_VERSION_HEX >= 0x03000000
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
103 # define F_RBUFFER "y"
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
104 #else
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
105 # define F_RBUFFER "s"
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
106 #endif
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
107
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
108 /*
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
109 * Error codes which can be returned by functions called without GIL
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
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
112 #define MP_SUCCESS (0)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
113 #define MP_STANDARD_ERROR (-1)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
114 #define MP_MEMORY_ERROR (-1001)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
115 #define MP_END_OF_FILE (-1002)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
116 #define MP_EARLY_END_OF_FILE (-1003)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
117 #define MP_BAD_MESSAGE_LENGTH (-1004)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
118 #define MP_SOCKET_ERROR (-1005)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
119 #define MP_EXCEPTION_HAS_BEEN_SET (-1006)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
120
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
121 PyObject *mp_SetError(PyObject *Type, int num);
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
122
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
123 /*
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
124 * Externs - not all will really exist on all platforms
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 extern PyObject *pickle_dumps;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
128 extern PyObject *pickle_loads;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
129 extern PyObject *pickle_protocol;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
130 extern PyObject *BufferTooShort;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
131 extern PyTypeObject SemLockType;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
132 extern PyTypeObject ConnectionType;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
133 extern PyTypeObject PipeConnectionType;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
134 extern HANDLE sigint_event;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
135
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 * Py3k compatibility
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
138 */
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 #if PY_VERSION_HEX >= 0x03000000
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
141 # define PICKLE_MODULE "pickle"
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
142 # define FROM_FORMAT PyUnicode_FromFormat
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
143 # define PyInt_FromLong PyLong_FromLong
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
144 # define PyInt_FromSsize_t PyLong_FromSsize_t
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
145 #else
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
146 # define PICKLE_MODULE "cPickle"
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
147 # define FROM_FORMAT PyString_FromFormat
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
148 #endif
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
149
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
150 #ifndef PyVarObject_HEAD_INIT
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
151 # define PyVarObject_HEAD_INIT(type, size) PyObject_HEAD_INIT(type) size,
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
152 #endif
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
153
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
154 #ifndef Py_TPFLAGS_HAVE_WEAKREFS
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
155 # define Py_TPFLAGS_HAVE_WEAKREFS 0
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
156 #endif
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
157
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
158 /*
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
159 * Connection definition
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
160 */
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
161
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
162 #define CONNECTION_BUFFER_SIZE 1024
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
163
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
164 typedef struct {
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
165 PyObject_HEAD
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
166 HANDLE handle;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
167 int flags;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
168 PyObject *weakreflist;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
169 char buffer[CONNECTION_BUFFER_SIZE];
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
170 } ConnectionObject;
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
171
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
172 /*
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
173 * Miscellaneous
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
174 */
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
175
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
176 #define MAX_MESSAGE_LENGTH 0x7fffffff
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
177
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
178 #ifndef MIN
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
179 # define MIN(x, y) ((x) < (y) ? x : y)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
180 # define MAX(x, y) ((x) > (y) ? x : y)
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
181 #endif
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
182
6d1dc761ab4e fix multiprocessing line endings in py3k
Benjamin Peterson <benjamin@python.org>
parents: 47595
diff changeset
183 #endif /* MULTIPROCESSING_H */