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

Tutorials

User Guide

Architecture

Index