Gears
A Julia package for scheduling tasks in simulation environments with precise timing control.
Quick Start
using Gears
# Schedule a task every 200ms
every(200ms) do dt
println("Task executed at $(now(global_clock()))")
end
# Run the scheduler for 1 second
for_next(1s) do
update!()
end
Features
- Timed Jobs: Execute tasks at regular intervals
- ASAP Jobs: Execute tasks as soon as possible
- Event Jobs: Execute tasks when data arrives on channels
- Multiple Clocks: Machine time or controllable virtual time
- Flexible Scheduling: Global or custom schedulers
- Multi-threading: Parallel job execution
Documentation
Getting Started
- Quick Start - Get up and running in 5 minutes
Tutorials
- Tutorials - Step-by-step learning guide
- Basic Scheduling - Learn job scheduling fundamentals
- Clocks and Time - Understand time control
- Job Types - Explore different job triggers
- Schedulers - Configure job execution
- Threading - Run jobs in parallel
User Guide
- User Guide - Complete reference documentation
- API Reference - Function and type documentation
- Sharp Bits - Learn about sharp bits
Architecture
- Architecture - Implementation details and design
Index
Gears.MachineClock
Gears.TickedScheduler
Gears.TickedScheduler
Gears.Ticker
Gears.Ticker
Gears.TimedJob
Gears.TimedJob
Gears.VirtualClock
Gears.advance_time!
Gears.advance_to!
Gears.can_tick
Gears.consume_tick!
Gears.global_clock
Gears.global_scheduler
Gears.now
Gears.pause!
Gears.progress!
Gears.progress!
Gears.progress!
Gears.progress!
Gears.reset!
Gears.reset_global_clock!
Gears.reset_global_scheduler!
Gears.resume!
Gears.schedule!
Gears.schedule!
Gears.schedule!
Gears.set_global_clock!
Gears.set_global_scheduler!
Gears.set_time!
Gears.update!
Gears.update!
Gears.update!