Victor Stinner
468e5fec8a
bpo-36402: Fix threading._shutdown() race condition (GH-13948)
...
Fix a race condition at Python shutdown when waiting for threads.
Wait until the Python thread state of all non-daemon threads get
deleted (join all non-daemon threads), rather than just wait until
Python threads complete.
* Add threading._shutdown_locks: set of Thread._tstate_lock locks
of non-daemon threads used by _shutdown() to wait until all Python
thread states get deleted. See Thread._set_tstate_lock().
* Add also threading._shutdown_locks_lock to protect access to
threading._shutdown_locks.
* Add test_finalization_shutdown() test.
2019-06-13 01:30:17 +02:00
..
2019-04-09 00:34:02 +02:00
2019-06-13 01:09:04 +02:00
2019-06-01 11:00:15 +03:00
2019-06-12 21:50:23 +03:00
2019-06-06 12:53:27 -07:00
2019-05-24 23:57:23 +02:00
2019-06-07 14:23:38 -07:00
2019-04-09 16:17:25 +09:00
2019-05-26 10:08:19 -07:00
2019-03-01 18:17:55 +01:00
2019-05-02 22:11:04 +02:00
2019-05-20 21:37:05 +02:00
2019-05-29 08:20:35 -07:00
2019-05-01 22:49:49 -04:00
2019-03-14 10:32:22 +02:00
2019-05-17 22:28:42 +02:00
2019-04-29 13:36:57 +01:00
2019-04-29 13:36:57 +01:00
2019-06-06 03:13:08 -07:00
2019-05-31 11:29:39 +03:00
2019-05-01 02:30:12 +02:00
2019-04-04 13:38:42 +03:00
2019-05-08 09:35:09 -07:00
2019-05-17 10:13:03 +03:00
2019-05-17 10:13:03 +03:00
2019-05-27 12:56:22 -07:00
2019-06-07 13:08:36 -07:00
2019-05-17 10:13:03 +03:00
2019-05-31 14:09:49 +01:00
2019-05-29 08:20:35 -07:00
2019-03-12 20:57:09 -07:00
2019-05-29 11:46:58 -07:00
2019-03-05 10:06:26 +02:00
2019-03-05 10:06:26 +02:00
2019-06-02 10:24:06 +01:00
2019-05-29 11:46:58 -07:00
2019-06-07 17:51:28 +02:00
2019-06-07 17:51:28 +02:00
2019-06-02 00:05:48 +03:00
2019-04-01 18:35:20 +09:00
2019-04-17 17:33:25 +02:00
2019-06-01 18:08:04 +01:00
2019-03-18 15:44:11 +09:00
2019-06-04 17:09:10 +02:00
2019-05-19 16:57:13 +03:00
2019-05-15 23:45:18 +02:00
2019-06-02 00:05:48 +03:00
2019-06-05 18:22:31 +03:00
2019-06-05 18:22:31 +03:00
2019-06-05 18:22:31 +03:00
2019-06-03 03:51:43 +02:00
2019-06-03 03:51:43 +02:00
2019-05-10 03:50:11 +02:00
2019-06-02 22:14:48 -04:00
2019-03-05 10:05:57 +02:00
2019-06-07 12:20:23 +02:00
2019-06-03 21:30:58 +09:00
2019-04-02 18:30:10 +09:00
2019-06-01 18:08:04 +01:00
2019-05-29 11:46:58 -07:00
2019-05-27 16:39:22 +02:00
2019-03-24 17:07:47 -07:00
2019-05-18 11:27:16 -07:00
2019-04-09 00:34:02 +02:00
2019-05-22 23:44:02 +02:00
2019-04-08 09:51:33 +09:00
2019-05-20 23:44:11 +03:00
2019-05-23 08:45:22 -07:00
2019-06-02 00:05:48 +03:00
2019-05-27 15:31:52 -04:00
2019-04-09 00:34:02 +02:00
2019-06-05 18:22:31 +03:00
2019-05-29 03:55:44 -04:00
2019-03-01 01:12:27 -08:00
2019-06-02 23:11:24 +02:00
2019-06-03 03:51:43 +02:00
2019-04-22 11:51:06 -07:00
2019-06-02 00:05:48 +03:00
2019-05-09 16:22:15 +02:00
2019-06-03 08:34:20 +01:00
2019-05-13 10:50:52 +03:00
2019-05-31 21:13:57 -07:00
2019-03-10 10:12:28 -07:00
2019-05-06 17:54:06 -04:00
2019-04-15 18:23:20 +02:00
2019-06-02 00:05:48 +03:00
2019-06-08 05:05:46 -07:00
2019-06-02 00:05:48 +03:00
2019-06-12 23:57:11 +02:00
2019-03-05 10:06:26 +02:00
2019-05-14 19:32:59 +09:00
2019-03-25 22:01:12 +00:00
2019-04-09 00:34:02 +02:00
2019-06-01 02:19:09 -07:00
2019-06-02 09:03:59 +03:00
2019-06-08 08:58:11 -07:00
2019-04-25 18:36:45 +00:00
2019-03-27 07:58:49 +02:00
2019-05-27 10:57:23 -07:00
2019-04-07 18:00:41 +10:00
2019-06-02 21:36:21 +01:00
2019-03-12 08:39:57 -07:00
2019-05-06 17:54:06 -04:00
2019-03-12 08:39:57 -07:00
2019-05-10 19:21:10 +02:00
2019-05-31 19:39:47 +01:00
2019-04-29 13:36:57 +01:00
2019-05-21 19:44:40 +02:00
2019-05-24 21:44:31 +01:00
2019-05-26 17:10:09 +02:00
2019-05-26 17:10:09 +02:00
2019-05-26 17:10:09 +02:00
2019-03-05 10:06:26 +02:00
2019-05-15 23:14:38 +03:00
2019-03-05 10:06:26 +02:00
2019-06-01 18:08:04 +01:00
2019-06-11 10:15:31 -07:00
2019-06-02 10:24:06 +01:00
2019-03-22 10:22:20 -07:00
2019-05-28 19:29:04 +03:00
2019-05-26 17:10:09 +02:00
2019-05-24 04:38:01 -07:00
2019-06-03 03:51:43 +02:00
2019-05-06 14:57:17 -04:00
2019-05-31 10:39:47 +03:00
2019-06-13 01:09:04 +02:00
2019-04-17 17:41:33 +02:00
2019-03-05 10:06:26 +02:00
2019-04-14 11:16:54 +02:00
2019-03-05 10:06:26 +02:00
2019-06-11 01:15:24 -07:00
2019-03-05 10:06:26 +02:00
2019-06-01 20:09:22 +01:00
2019-05-30 14:05:41 +08:00
2019-05-05 18:06:30 +09:00
2019-05-29 14:02:37 -07:00
2019-03-05 10:06:26 +02:00
2019-03-25 00:25:37 -07:00
2019-06-03 21:00:10 +02:00
2019-04-25 18:36:45 +00:00
2019-05-03 08:09:17 -07:00
2019-05-18 10:18:29 -07:00
2019-05-28 22:49:35 +03:00
2019-04-25 18:36:45 +00:00
2019-05-29 02:33:59 -07:00
2019-05-28 16:21:17 -07:00
2019-05-17 11:37:08 +01:00
2019-05-22 22:05:02 +12:00
2019-05-30 13:08:24 +02:00
2019-04-17 11:46:50 +02:00
2019-03-21 16:44:51 +02:00
2019-05-31 11:30:37 +03:00
2019-06-03 03:51:43 +02:00
2019-06-13 01:30:17 +02:00
2019-05-12 18:34:44 -07:00
2019-06-05 18:22:31 +03:00
2019-06-12 02:52:16 +02:00
2019-06-11 09:18:31 -07:00
2019-04-12 08:35:39 -07:00
2019-05-08 20:59:35 -07:00
2019-03-05 10:06:26 +02:00
2019-03-05 10:06:26 +02:00
2019-06-12 04:07:38 +02:00
2019-06-04 17:55:29 +02:00
2019-06-05 18:22:31 +03:00
2019-05-07 17:41:06 -04:00
2019-05-21 13:27:36 -07:00
2019-04-22 11:46:27 -07:00
2019-06-04 19:03:13 +02:00
2019-06-05 18:22:31 +03:00
2019-05-20 10:01:07 -07:00
2019-04-25 18:36:45 +00:00
2019-05-19 18:56:15 +03:00
2019-05-09 07:22:47 +02:00
2019-04-30 19:12:21 -07:00
2019-06-03 03:51:43 +02:00
2019-03-05 10:05:57 +02:00
2019-05-09 11:34:35 -04:00
2019-03-05 10:06:26 +02:00
2019-03-05 10:06:26 +02:00