Skip to content
Agentmart
Submit a tool

async-concurrency

Design correct async and concurrent code — bounded parallelism, backpressure, cancellation, and deadlock avoidance.

Skill by xanstomper

IndexedMIT★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/xanstomper-async-concurrency

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Design correct async and concurrent code — bounded parallelism, backpressure, cancellation, and deadlock avoidance. Use when writing worker pools, streaming pipelines, or anything with await/Promise.all/spawn.

Use cases: design, writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/async-concurrency

What's inside

Skill name
async-concurrency
Description
Design correct async and concurrent code — bounded parallelism, backpressure, cancellation, and deadlock avoidance. Use when writing worker pools, streaming pipelines, or anything with await/Promise.all/spawn.
License
MIT
Instructions
21 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Async & Concurrency Procedure

## Trigger / when to use
Load when writing worker pools, processing streams, using Promise.all/SettleAll, spawning subprocesses or threads, or debugging hangs, unbounded memory growth, or unhandled rejections.

## Approach
1. **Bound every fan-out**: `Promise.all(items.map(work))` over 10k items launches 10k concurrent operations — memory and rate limits explode. Use a pool with a fixed concurrency (p-limit, worker pool, semaphore).
2. **Choose all-vs-settle deliberately**: `Promise.all` rejects on first failure and leaks the rest (unhandled rejections); `Promise.allSettled` waits for everything. For independent work where partial success matters, settle; for transactions, all.
3. **Always propagate cancellation**: a long chain without an AbortSignal check keeps running after the caller is gone — the process hangs at exit with work nobody reads. Thread the signal through every await.
4. **Backpressure, not buffering**: if a producer outruns the consumer, queue capacity must be bounded; drop-to-dead-letter is a decision you make explicitly, never an OOM you discover.
5. **Never hold a lock across await** (JS) or block inside async (Python/Go): it destroys parallelism and invites deadlock. Do the async work, then take the lock for the state update.

## Pitfalls
- Floating promises (`void asyncFn()` with no error handler) — failures vanish silently.
- Assuming one await is atomic — between your check and your write, another task mutates the state (read-modify-write races).
- Unbounded queues "temporarily" — they become the OOM when the consumer stalls.
- Mixing callbacks and async control flow — pick one boundary and adapt (util.promisify, asyncio.to_thread).

## Verification
Write a test that runs the pool at 2x expected concurrency with a slow/dying task, then asserts: bounded peak in-flight, no unhandled rejection, prompt cancellation on signal, and correct results for the survivors.

From xanstomper/mochi, MIT.

More from xanstomper/mochi

Signals

Stars
1
Forks
2
Open issues
6
Last commit (this folder)
Oct 14, 2026 (14 days ago)
Last release
Oct 23, 2026 (5 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from xanstomper

Cite this page

async-concurrency skill. Agent Mart. https://agentmart.dev/skills/xanstomper-async-concurrency (last updated 2026-10-24)