Subject | Hash | Author | Date (UTC) |
---|---|---|---|
bpo-30185: avoid KeyboardInterrupt tracebacks in forkserver (#1319) | 6dd4d734ed207ba16b017e38f8909de7ef187e29 | Antoine Pitrou | 2017-05-04 14:44:53 |
bpo-30263: regrtest: log system load (#1452) | 3d0056842c5e06b4102f990b59ab3b607f932dd8 | Victor Stinner | 2017-05-04 13:21:12 |
bpo-29956: Improve the math.exp() related documentation. (#1073) | dbaf746b6de0ee431c809d3175ab40ccc18898a8 | Serhiy Storchaka | 2017-05-04 09:25:09 |
bpo-30166: Import command-line parsing modules only when needed. (#1293) | 7e4db2f253c555568d56177c2fd083bcf8f88d34 | Serhiy Storchaka | 2017-05-04 05:17:47 |
bpo-30225: Fix is_valid_fd() on macOS Tiger (#1443) | 1c4670ea0cc3d208121af11b9b973e6bb268e570 | Victor Stinner | 2017-05-03 22:45:56 |
bpo-30184: Add tests for invalid use of PyArg_ParseTupleAndKeywords. (#1316) | 5f161fd86dd5bb936a1a2a13391b13b7e59ec201 | Serhiy Storchaka | 2017-05-03 21:03:23 |
Add myself to mention-bot's alwaysNotifyForPaths for ssl/hashlib (#1425) | feec3dc9c308052754f9e4848c1c1ddb007e9f66 | Christian Heimes | 2017-05-03 18:17:54 |
Explicitly mention what should (not) be discussed on GitHub (GH-1437) | 7fdd30975e3fa9ec4be62464a9fcab7798d0ed6e | Brett Cannon | 2017-05-03 17:51:55 |
bpo-28315: Improve code examples in docs (GH-1372) | 8856940cf2e82cb17db2b684cd5732fe658605ca | UltimateCoder | 2017-05-03 16:46:45 |
bpo-23404: make touch becomes make regen-all (#1405) | a5c62a8e9f0de6c4133825a5710984a3cd5e102b | Victor Stinner | 2017-05-03 16:21:48 |
bpo-30103: Allow Uuencode in Python using backtick as zero instead of space (#1326) | 13f1f423fac39f8f14a3ce919dd236975517d5c6 | Xiang Zhang | 2017-05-03 03:16:21 |
Fix tests: getsockname() can return None on OS X on unbound sockets (#1400) | 0360a9d015ddbc4e3d58e3ab4b433da27bf1db3a | Antoine Pitrou | 2017-05-02 21:48:26 |
bpo-30232: Regenerate configure (#1396) | 9ed34a89532763cf89f5e11fffb91ef7dee29fed | Victor Stinner | 2017-05-02 20:35:58 |
bpo-30232: Support Git worktree in configure.ac (#1391) | 5facdbb29169c2799c42f887cef4cd9d087b0167 | Victor Stinner | 2017-05-02 19:42:48 |
Remove outdated tests in test_isinstance (GH-1393) | 094909ad69a6654ac43c69ebdced060fbbbbede8 | Jim Fasarakis-Hilliard | 2017-05-02 17:17:18 |
bpo-28556: Routine updates to typing (#1366) | f06e0218ef6007667f5d61184b85a81a0466d3ae | Ivan Levkivskyi | 2017-05-02 17:14:07 |
bpo-30205: Fix getsockname() for unbound AF_UNIX sockets on Linux (#1370) | 495b5021e73e3c4b6404417ecf4fa83aa10297f0 | Antoine Pitrou | 2017-05-02 15:20:00 |
Fix typo in selectors.rst (#1383) | b0d82036549074357717d130a772d1e2ebc8ea01 | Tong SHEN | 2017-05-02 13:27:57 |
bpo-30228: FileIO seek() and tell() set seekable (#1384) | 999707373630ce090300c3c542066f493b12faa0 | Victor Stinner | 2017-05-02 13:10:39 |
bpo-30199: test_ssl closes all asyncore channels (#1381) | 1dae7450c68bad498e57800387b24cb103c461fa | Victor Stinner | 2017-05-02 11:12:02 |
File | Lines added | Lines deleted |
---|---|---|
Lib/multiprocessing/forkserver.py | 14 | 6 |
Misc/NEWS | 3 | 0 |
File Lib/multiprocessing/forkserver.py changed (mode: 100644) (index f2c179e4e0..d5ce625745) | |||
... | ... | def main(listener_fd, alive_r, preload, main_path=None, sys_path=None): | |
149 | 149 | ||
150 | 150 | util._close_stdin() | util._close_stdin() |
151 | 151 | ||
152 | # ignoring SIGCHLD means no need to reap zombie processes | ||
153 | handler = signal.signal(signal.SIGCHLD, signal.SIG_IGN) | ||
152 | # ignoring SIGCHLD means no need to reap zombie processes; | ||
153 | # letting SIGINT through avoids KeyboardInterrupt tracebacks | ||
154 | handlers = { | ||
155 | signal.SIGCHLD: signal.SIG_IGN, | ||
156 | signal.SIGINT: signal.SIG_DFL, | ||
157 | } | ||
158 | old_handlers = {sig: signal.signal(sig, val) | ||
159 | for (sig, val) in handlers.items()} | ||
160 | |||
154 | 161 | with socket.socket(socket.AF_UNIX, fileno=listener_fd) as listener, \ | with socket.socket(socket.AF_UNIX, fileno=listener_fd) as listener, \ |
155 | 162 | selectors.DefaultSelector() as selector: | selectors.DefaultSelector() as selector: |
156 | 163 | _forkserver._forkserver_address = listener.getsockname() | _forkserver._forkserver_address = listener.getsockname() |
... | ... | def main(listener_fd, alive_r, preload, main_path=None, sys_path=None): | |
175 | 182 | code = 1 | code = 1 |
176 | 183 | if os.fork() == 0: | if os.fork() == 0: |
177 | 184 | try: | try: |
178 | _serve_one(s, listener, alive_r, handler) | ||
185 | _serve_one(s, listener, alive_r, old_handlers) | ||
179 | 186 | except Exception: | except Exception: |
180 | 187 | sys.excepthook(*sys.exc_info()) | sys.excepthook(*sys.exc_info()) |
181 | 188 | sys.stderr.flush() | sys.stderr.flush() |
... | ... | def main(listener_fd, alive_r, preload, main_path=None, sys_path=None): | |
186 | 193 | if e.errno != errno.ECONNABORTED: | if e.errno != errno.ECONNABORTED: |
187 | 194 | raise | raise |
188 | 195 | ||
189 | def _serve_one(s, listener, alive_r, handler): | ||
190 | # close unnecessary stuff and reset SIGCHLD handler | ||
196 | def _serve_one(s, listener, alive_r, handlers): | ||
197 | # close unnecessary stuff and reset signal handlers | ||
191 | 198 | listener.close() | listener.close() |
192 | 199 | os.close(alive_r) | os.close(alive_r) |
193 | signal.signal(signal.SIGCHLD, handler) | ||
200 | for sig, val in handlers.items(): | ||
201 | signal.signal(sig, val) | ||
194 | 202 | ||
195 | 203 | # receive fds from parent process | # receive fds from parent process |
196 | 204 | fds = reduction.recvfds(s, MAXFDS_TO_SEND + 1) | fds = reduction.recvfds(s, MAXFDS_TO_SEND + 1) |
File Misc/NEWS changed (mode: 100644) (index 4e85c0fbf2..d76c76be8d) | |||
... | ... | Extension Modules | |
317 | 317 | Library | Library |
318 | 318 | ------- | ------- |
319 | 319 | ||
320 | - bpo-30185: Avoid KeyboardInterrupt tracebacks in forkserver helper process | ||
321 | when Ctrl-C is received. | ||
322 | |||
320 | 323 | - bpo-30103: binascii.b2a_uu() and uu.encode() now support using ``'`'`` | - bpo-30103: binascii.b2a_uu() and uu.encode() now support using ``'`'`` |
321 | 324 | as zero instead of space. | as zero instead of space. |
322 | 325 |