julia-async/SKILL.md
Build and troubleshoot asynchronous Julia code using Task, schedule/wait, Channels, producer-consumer patterns, and task/event coordination. Use this skill when implementing non-blocking workflows, background jobs, inter-task communication, or Task-based orchestration in Julia.
npx skillsauth add krastanov/juliallmagentskills julia-asyncInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use Julia Task and Channel primitives for concurrent workflows that cooperate through yielding and waiting.
Create task work with @task or Task, then schedule and wait:
t = @task begin
sleep(0.1)
println("done")
end
schedule(t)
wait(t)
For immediate scheduling, use Threads.@spawn and fetch/wait on the returned task handle.
Use Channel when tasks need explicit handoff and buffering:
function producer(c::Channel)
for n in 1:4
put!(c, n)
end
end
for x in Channel(producer)
@show x
end
Apply bounded channel capacities (Channel{T}(sz)) to control backpressure.
errormonitor(task) for visibility of task failures.bind(channel, task) when channel lifetime and failure propagation should be linked.take!, put!, fetch, isready, close according to channel state semantics.Remember that wait is the core blocking primitive:
wait(task) for task completion.wait(process) for process exit.wait(condition)/notify(condition) for condition synchronization.Most switching is scheduler-managed; avoid low-level yieldto unless implementing advanced control flow.
references/task-channel-patterns.md - task/channel recipes and safety notesjulia-threads - multi-threaded execution and synchronizationjulia-external-cmd - subprocess orchestration with tasks and pipelinestesting
Run and write Julia tests with Test.jl, TestItemRunner.jl, and ParallelTestRunner.jl. Use when organizing test suites, choosing a test runner, or filtering package tests.
tools
Create and develop Julia packages in local environments, including package bootstrapping, multi-package workspaces, package extensions, and Pkg apps. Use when starting a package or managing package environments, dependencies, structure, and related development workflows.
development
Analyze Julia code with JET.jl for type errors, undefined references, and optimization failures. Use this skill when setting up or running JET analysis on Julia packages.
development
Fix trailing whitespace and ensure files end with newlines. Use this skill when preparing code for commit or when whitespace issues are detected.