@@ -33,17 +33,23 @@ lead to a hang.
3333
3434See :issue: `143 ` for an example.
3535
36- Free-threading Is Not Supported
37- ===============================
36+ Free-threading Is Experimental
37+ ==============================
3838
39- Beginning with 3.14 (and experimental in 3.13), CPython may be built
40- in a free-threaded mode where the GIL is not used by default. greenlet
41- does not support this mode (although it will build with it), and using
42- greenlet in such an interpreter will cause the GIL to be enabled.
39+ Beginning with greenlet 3.3.0, support for Python 3.14's free-threaded
40+ mode is enabled. Use caution, as it has only limited testing.
4341
44- In addition, there are known issues running greenlets in a
45- free-threaded CPython. These include:
42+ There are known issues running greenlets in a free-threaded CPython.
43+ These include:
4644
45+ - As with any threaded program, use caution when forking. Greenlet
46+ maintains internal locks and forking at the wrong time might result
47+ in the child process hanging.
4748- Garbage collection differences may cause ``GreenletExit `` to no
4849 longer be raised in certain multi-threaded scenarios.
4950- There may be other memory leaks.
51+ - It may be necessary to disable the thread-local bytecode cache (and
52+ hence the specializing interpreter) to avoid a rare crash. If your
53+ process crashes on accessing an attribute or object, or at shutdown
54+ during module cleanup, try setting the environment variable
55+ ``PYTHON_TLBC=0 `` or using the ``-X tlbc=0 `` argument.
0 commit comments