mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-09 15:19:10 +02:00
Co-authored-by: marvin-context-protocol[bot] <225465937+marvin-context-protocol[bot]@users.noreply.github.com>
44 lines
1.3 KiB
Text
44 lines
1.3 KiB
Text
---
|
|
title: async_utils
|
|
sidebarTitle: async_utils
|
|
---
|
|
|
|
# `fastmcp.utilities.async_utils`
|
|
|
|
|
|
Async utilities for FastMCP.
|
|
|
|
## Functions
|
|
|
|
### `call_sync_fn_in_threadpool` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/utilities/async_utils.py#L13" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
call_sync_fn_in_threadpool(fn: Callable[..., Any], *args: Any, **kwargs: Any) -> Any
|
|
```
|
|
|
|
|
|
Call a sync function in a threadpool to avoid blocking the event loop.
|
|
|
|
Uses anyio.to_thread.run_sync which properly propagates contextvars,
|
|
making this safe for functions that depend on context (like dependency injection).
|
|
|
|
|
|
### `gather` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/utilities/async_utils.py#L38" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
gather(*awaitables: Awaitable[T]) -> list[T] | list[T | BaseException]
|
|
```
|
|
|
|
|
|
Run awaitables concurrently and return results in order.
|
|
|
|
Uses anyio TaskGroup for structured concurrency.
|
|
|
|
**Args:**
|
|
- `*awaitables`: Awaitables to run concurrently
|
|
- `return_exceptions`: If True, exceptions are returned in results.
|
|
If False, first exception cancels all and raises.
|
|
|
|
**Returns:**
|
|
- List of results in the same order as input awaitables.
|
|
|