Yury Selivanov <yseliva...@gmail.com> added the comment: A few thoughts:
1. The merged PR releases GIL for any Python code run in `with gc.ensure_disabled()`. This is just plain wrong. 2. The merged PR crashes on debug build of CPython. 3. I don't actually understand this feature. Our GC is not per OS thread, which means that inside `with gc.ensure_disabled()` the GC can become suddenly **enabled**, if another thread enables it. This API is just misleading (maybe the name of the new context manager is bad—it cannot ensure anything). There's even a unittest that tests this! 4. This new API can be trivially implemented in pure Python: @contextmanager def disable_gc(): gc.disable() try: yield finally: gc.enable() 5. While such pure Python version shares the problem discussed in (3), the currently committed C implementation doesn't fix them either. IMO this entire issue needs to be properly debated on python-ideas first and the PR should be reverted from beta-1. If the latter is not possible, OK, let's revert it for beta-2 and for 3.8. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue31356> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com