List of commits:
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
Commit 6dd4d734ed207ba16b017e38f8909de7ef187e29 - bpo-30185: avoid KeyboardInterrupt tracebacks in forkserver (#1319)
* bpo-30185: avoid KeyboardInterrupt tracebacks in forkserver

* Tweak comment
Author: Antoine Pitrou
Author date (UTC): 2017-05-04 14:44
Committer name: GitHub
Committer date (UTC): 2017-05-04 14:44
Parent(s): 3d0056842c5e06b4102f990b59ab3b607f932dd8
Signing key:
Tree: 2f51ce31377b6d69f1ae65de83c172cbd99ca464
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
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/benf_wspdigital/cpython

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/benf_wspdigital/cpython

Clone this repository using git:
git clone git://git.rocketgit.com/user/benf_wspdigital/cpython

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main