Table of Contents

Struct SchedulerMetronomeWaitData

Namespace
Typhon.Profiler
Assembly
Typhon.Profiler.dll

Decoded Scheduler Metronome Wait span. Payload: scheduledTimestamp i64, multiplier u8, intentClass u8, phaseFlags u8 (11 B).

public readonly struct SchedulerMetronomeWaitData
Inherited Members

Remarks

intentClass: 0 = CatchUp (target was already past at wait start — wait phases short-circuited and the next tick fired immediately), 1 = Throttled (Multiplier > 1 — engine is voluntarily slowing itself in response to recent overruns), 2 = Headroom (multiplier == 1, normal between-tick idle waiting for the next 60Hz boundary).

phaseFlags bits: 0x1 = Sleep entered (Thread.Sleep called at least once), 0x2 = Yield entered (Thread.Yield called at least once), 0x4 = Spin entered.

Constructors

SchedulerMetronomeWaitData(byte, long, long, long, byte, byte, byte)

Constructs the decoded metronome-wait record from its wire fields.

public SchedulerMetronomeWaitData(byte threadSlot, long startTimestamp, long durationTicks, long scheduledTimestamp, byte multiplier, byte intentClass, byte phaseFlags)

Parameters

threadSlot byte
startTimestamp long
durationTicks long
scheduledTimestamp long
multiplier byte
intentClass byte
phaseFlags byte

Properties

DurationTicks

Wait duration in Stopwatch.GetTimestamp() ticks.

public long DurationTicks { get; }

Property Value

long

IntentClass

Wait intent class (0 = CatchUp, 1 = Throttled, 2 = Headroom) — see the type remarks.

public byte IntentClass { get; }

Property Value

byte

Multiplier

Effective tick-rate multiplier in force during the wait (1 = full rate; > 1 = engine voluntarily throttled).

public byte Multiplier { get; }

Property Value

byte

PhaseFlags

Bitmask of wait phases entered (0x1 = Sleep, 0x2 = Yield, 0x4 = Spin) — see the type remarks.

public byte PhaseFlags { get; }

Property Value

byte

ScheduledTimestamp

Timestamp the next tick was scheduled for, in Stopwatch.GetTimestamp() ticks.

public long ScheduledTimestamp { get; }

Property Value

long

StartTimestamp

Wait start timestamp in Stopwatch.GetTimestamp() ticks.

public long StartTimestamp { get; }

Property Value

long

ThreadSlot

Producer thread slot (0-255, from the thread-slot registry) the span was emitted on — the timer thread.

public byte ThreadSlot { get; }

Property Value

byte