Comments (3)
Try the recent changes in the master branch (specifically #3272). This will shut down the selector thread cleanly (without leaving it for atexit
) as long as you're using asyncio.run
.
I wonder if the atexit
hook is even still necessary. As the comment says, I was never able to reproduce or understand it properly (it doesn't make sense for this to be necessary in a daemon thread). Now that we have a cleaner shutdown method, I'm not sure we really need the atexit
hook as a fallback (but because it's so poorly understood I'm not confident we can remove it either).
from tornado.
Try the recent changes in the master branch (specifically #3272). This will shut down the selector thread cleanly (without leaving it for atexit) as long as you're using asyncio.run.
I don't expect this to work because my asyncio.run call needs to outlive the atexit callbacks
from tornado.
Ah, OK. So the existing changes won't help you and we either need to get rid of the atexit callback or give you a way to opt out. I'm leaning towards the former; it's really hard for a library to safely use an atexit callback and it doesn't feel necessary anymore. But we'll see if CI is happy when I make the change...
from tornado.
Related Issues (20)
- AttributeError: '_NullFuture' object has no attribute 'add_done_callback' HOT 5
- how to abort async HTTP request with curl implementation? HOT 4
- Patch to compile on gnu/hurd HOT 1
- support IOLoop.close() when called after asyncio.run HOT 1
- Docker + tornado.ioloop.IOLoop.current().start() HOT 2
- RFE: please start making github releases HOT 4
- wsgi: Overloaded thread pool blocks longer than expected HOT 2
- Incorrect header validation HOT 3
- RFE: please start making github releases HOT 2
- Exclude test files from install HOT 6
- Incorrect type annotation on chain_future method
- Python 3.12 manylinux wheels HOT 2
- tornado 6.3.3 with gevent 23.7.0 hangup HOT 1
- Content-length validation does not handle spaces HOT 6
- How to set timeout on an Application and/or HTTPServer HOT 1
- `tornado.process.Subprocess()` hangs forever in `write()` for large data HOT 1
- httpclient_test: test_destructor_log is flaky on windows
- Python 3.11.5 error in ioloop.py HOT 3
- Inaccurate typing on HTTPHeaders
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tornado.