# Li Lance Android Seraphim Framework Golang Concurrency

> Golang Concurrency

- Skill: `tomevault-io/li-lance-android-seraphim-framework-golang-concurrency` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/li-lance-android-seraphim-framework-golang-concurrency`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/li-lance-android-seraphim-framework-golang-concurrency/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/li-lance-android-seraphim-framework-golang-concurrency

---


# Golang Concurrency

## **Priority: P0 (CRITICAL)**

## Principles

- **Share Memory by Communicating**: Use channels instead of shared memory.
- **Context is King**: Always pass `ctx` to manage cancellation/timeouts.
- **Prevent Leaks**: Never start a goroutine without knowing how it will stop.
- **Race Detection**: Always run tests with `go test -race`.

## Implementation Workflow

1. **Choose primitive** — Channels for data passing, `sync.Mutex` for simple state protection,
   `errgroup` for parallel tasks with error handling.
2. **Pass context** — Every goroutine that does I/O or long work must accept `context.Context`.
3. **Define exit paths** — Every goroutine must have a clear shutdown mechanism (context
   cancellation, channel close, or WaitGroup).
4. **Use select for multiplexing** — Handle multiple channels or timeouts with `select`.
5. **Test with race detector** — Run `go test -race` in CI.

See [ErrGroup and concurrency patterns](references/concurrency-patterns.md)
and [context timeout examples](references/context-usage.md)

## Anti-Patterns

- **No goroutine leaks**: Every goroutine must have a known exit path.
- **No shared global state**: Use channels or sync primitives across goroutines.
- **No bare goroutines**: Use `errgroup` or `WaitGroup` for lifecycle management.

## References

- [Concurrency Patterns](references/concurrency-patterns.md)
- [Context Usage](references/context-usage.md)

---
> Source: [li-lance/android-seraphim-framework](https://github.com/li-lance/android-seraphim-framework) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-06-16 -->

