threadloop
Tornado IOLoop Backed Concurrent Futures
Decision gist · record as of 2026-08-14
No, unless you are maintaining legacy code locked to Python 2.7 or early Python 3 with an old Tornado version. The package is abandoned, untested with modern Tornado, and offers no maintenance path forward. Modern alternatives—such as asyncio bridges, async/await patterns, or Tornado's own async support—are better choices for new code.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Tornado; designed for Python 2.7 and early Python 3 versions (3.3–3.5 per classifiers).
- Compatibility with modern Tornado and Python versions is unverified.
- Low install friction, but the package is abandoned—last release was 2016-04-01 and last commit 2022-05-17.
License · maintenance · safety
MIT (permissive) — MIT license is permissive; you can use, modify, and distribute this package freely with minimal restrictions.
last release 2016-04-01 (3787 days) · last repo commit 2022-05-17 · 9 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 243,975 downloads/mo, #8,769 on PyPI
Alternatives
Verify before relying
pip install threadloop
from threadloop import ThreadLoop
from tornado import gen
@gen.coroutine
def my_coroutine():
yield gen.sleep(1)
raise gen.Return("done")
with ThreadLoop() as loop:
future = loop.submit(my_coroutine)
print(future.result())- Whether this package works with modern Tornado versions (current or recent releases).
- Whether it works reliably with Python 3.6+ or only the declared versions (3.3–3.5).
- Whether the threading model is safe for production use or carries known race conditions.
What it is and what it does
ThreadLoop wraps Tornado's IOLoop inside a background thread, letting you call Tornado coroutines from ordinary synchronous Python code and retrieve their results as futures. It bridges the gap between async Tornado code and synchronous callers by managing the event loop lifecycle automatically.
The package was designed for scenarios where you have a Tornado-based library or service but need to call it from synchronous code without blocking the main thread. It uses a context manager to set up and tear down the IOLoop thread cleanly. However, the project is no longer maintained—the last release was in 2016 and the last commit in 2022—so it is not tested against modern versions of Tornado or Python.
Use it for
- Call a Tornado-based async library from a synchronous script or application without rewriting the library.
- Integrate Tornado coroutines into a legacy synchronous codebase that cannot be fully converted to async.
- Test Tornado coroutines in a synchronous test suite without restructuring the test framework.
- Prototype or debug Tornado code interactively in a synchronous Python shell or notebook.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
No, unless you are maintaining legacy code locked to Python 2.7 or early Python 3 with an old Tornado version.
The package is abandoned, untested with modern Tornado, and offers no maintenance path forward. Modern alternatives—such as asyncio bridges, async/await patterns, or Tornado's own async support—are better choices for new code.
Install
threadloop on PyPI
Before you install
Low install friction, but the package is abandoned—last release was 2016-04-01 and last commit 2022-05-17. No recent maintenance or updates; use only if your codebase is locked to older Tornado versions.
Requires Tornado; designed for Python 2.7 and early Python 3 versions (3.3–3.5 per classifiers). Compatibility with modern Tornado and Python versions is unverified.
License in practice
MIT license is permissive; you can use, modify, and distribute this package freely with minimal restrictions.
Quickstart
pip install threadloop
from threadloop import ThreadLoop
from tornado import gen
@gen.coroutine
def my_coroutine():
yield gen.sleep(1)
raise gen.Return("done")
with ThreadLoop() as loop:
future = loop.submit(my_coroutine)
print(future.result())
Verify before relying
- Whether this package works with modern Tornado versions (current or recent releases).
- Whether it works reliably with Python 3.6+ or only the declared versions (3.3–3.5).
- Whether the threading model is safe for production use or carries known race conditions.
Package facts
| License | MIT permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagetornado |
| Maintenance | Abandoned 3,787 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 243,975 / month, #8,769 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 2Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPy |
Evidence: threadloop-1.0.2-py2-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “tornado coroutines from sync code”
- threadloopRuns Tornado coroutines from synchronous Python code by wrapping an…
- async-stripeProvides an asynchronous wrapper around the Stripe Python library,…
- syncerSyncer converts async functions to synchronous callables, allowing…
Give your agent the search over MCP, or paste the wish link into any chat.
More Application Frameworks packages
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Textual is a Python framework for building cross-platform user interfaces that run in the terminal or web browser using a modern, component-based API.
Install it if you're developing CLI tools, dashboards, or interactive terminal applications.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Build and connect to Model Context Protocol servers that expose tools, resources, and prompts to LLM applications over stdio, HTTP, or SSE transports.
Install it if you need to build or connect to servers.
Werkzeug is a WSGI utility library providing request/response objects, URL routing, an interactive debugger, HTTP utilities, and a development server for building web applications.
See also pytest-tornado · syncer · async-stripe · greenback · greenlet · lupa · requests-futures · synchronicity · unsync · pytest-tornasync