Mercurial > cpython-lru_cache-weakref
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 |
| 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 */ |
