[proxy] github.com← back | site home | direct (HTTPS) ↗ | proxy home | ◑ dark◐ light

bpo-37266: Daemon threads are now denied in subinterpreters by vstinner · Pull Request #14049 · python/cpython

vstinner

In a subinterpreter, spawning a daemon thread now raises an
exception. Daemon threads were never supported in subinterpreters.
Previously, the subinterpreter finalization crashed with a Pyton
fatal error if a daemon thread was still running.

* Add _thread._is_main_interpreter()
* threading.Thread.start() now raises RuntimeError if the thread is a
  daemon thread and the method is called from a subinterpreter.
* The _thread module now uses Argument Clinic the new function.
* Use textwrap.dedent() in test_threading.SubinterpThreadingTests

vstinner changed the title bpo-37266: Daemon threads are now defined in subinterpreters bpo-37266: Daemon threads are now denied in subinterpreters

Jun 13, 2019

* use print() using flush=True
* make the read end of the pipe non-blocking to avoid hanging forever

vstinner deleted the subinterp_daemon_thread branch

June 14, 2019 16:56

lisroach pushed a commit to lisroach/cpython that referenced this pull request

Sep 10, 2019
…-14049)

In a subinterpreter, spawning a daemon thread now raises an
exception. Daemon threads were never supported in subinterpreters.
Previously, the subinterpreter finalization crashed with a Pyton
fatal error if a daemon thread was still running.

* Add _thread._is_main_interpreter()
* threading.Thread.start() now raises RuntimeError if the thread is a
  daemon thread and the method is called from a subinterpreter.
* The _thread module now uses Argument Clinic for the new function.
* Use textwrap.dedent() in test_threading.SubinterpThreadingTests

DinoV pushed a commit to DinoV/cpython that referenced this pull request

Jan 14, 2020
…-14049)

In a subinterpreter, spawning a daemon thread now raises an
exception. Daemon threads were never supported in subinterpreters.
Previously, the subinterpreter finalization crashed with a Pyton
fatal error if a daemon thread was still running.

* Add _thread._is_main_interpreter()
* threading.Thread.start() now raises RuntimeError if the thread is a
  daemon thread and the method is called from a subinterpreter.
* The _thread module now uses Argument Clinic for the new function.
* Use textwrap.dedent() in test_threading.SubinterpThreadingTests

vstinner added a commit that referenced this pull request

Apr 12, 2020