m07-concurrency

Diagnose and fix Rust concurrency issues across threads and async tasks.

3|Updated Mar 22, 2026
One-click install
npx skills add https://github.com/0xharryriddle/codex-field-kit --skill m07-concurrency-0xharryriddle
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: m07-concurrency
Source: https://github.com/0xharryriddle/codex-field-kit/tree/main/archive/upstream/chasebuild-agent-skills/rust/skills/m07-concurrency
Command: npx skills add https://github.com/0xharryriddle/codex-field-kit --skill m07-concurrency-0xharryriddle

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Rust developers often struggle with designing safe and efficient concurrency, including Send/Sync constraints, cross-thread data sharing, and correct async patterns.

Core Features & Use Cases

  • Guidance on selecting primitives (Arc, Mutex, RwLock, channels) for safe shared state.
  • Structured patterns for async vs. thread-based concurrency, including error handling and anti-patterns.
  • Domain-agnostic strategies for tracing, guardrails, and robust concurrency design in real-world applications.

Quick Start

Analyze a Rust project to identify Send/Sync violations and implement safe sharing using Arc and Mutex.

Frequently Asked Questions about m07-concurrency

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix Rust async future not Send errors and E0277 violations?

Fix Rust async future not Send errors by diagnosing cross-thread data sharing violations and applying correct async task management patterns to ensure safety guarantees across std::thread, Arc, and Mutex.

When do I need Arc and Mutex for cross-thread data sharing in Rust?

You need Arc and Mutex for cross-thread data sharing in Rust when multiple threads require safe concurrent access to shared state, ensuring synchronization and preventing data races across std::thread boundaries.

What is the best way to choose between RwLock and channels for Rust concurrency?

The best way to choose between RwLock and channels involves evaluating async task management requirements, selecting primitives based on read-heavy access patterns versus message-passing needs for robust concurrent code.

Why does my Rust async task fail Send checks across thread boundaries?

Rust async tasks fail Send checks when shared state lacks thread-safe synchronization, requiring structured async patterns and domain-guided tracing to identify anti-patterns and implement safe cross-thread data sharing.

Can I use std::thread with Tokio async tasks for concurrent Rust code?

You can use std::thread with Tokio async tasks by applying structured patterns for async versus thread-based concurrency, ensuring correct error handling and safety guarantees across mixed concurrency models.

What are common anti-patterns when designing Rust concurrency with Arc and Mutex?

Common anti-patterns when designing Rust concurrency with Arc and Mutex include improper guardrail usage and unsafe cross-thread data sharing, which domain-agnostic strategies and best-practice templates resolve for production-grade concurrent code.