Skip to documentation
SLOP

tiny.coz.Sampler

Reference tiny.coz Sampler

Defined in sampler.

API (12)

Actions

Public operations.

Fields and members

Public fields and members.

No direct callersNo direct callssamplerSampler
Static calls · unresolved targets: unknown · external targets: unknown.

Source

Source: lib/coz/src/sampler.zig:38

zig
pub const Sampler = struct {    event: perf.Event = .{},    wake_timer: timer.Timer = .{},    wake_interval_ns: u64 = 0,    loss_counter_supported: bool = false,    pub fn openCurrentThread(options: Options) !Sampler {        try validateOptions(options);        const interval_ns = try wakeIntervalNs(options);        var opened = try openPerfEvent(options);        errdefer opened.event.close();        var wake_timer = try timer.Timer.createForCurrentThread(options.signal);        errdefer wake_timer.close();        return .{            .event = opened.event,            .wake_timer = wake_timer,            .wake_interval_ns = interval_ns,            .loss_counter_supported = opened.loss_counter_supported,        };    }    pub fn close(self: *Sampler) void {        self.wake_timer.close();        self.event.close();        self.wake_interval_ns = 0;        self.loss_counter_supported = false;    }    pub fn start(self: *Sampler) !void {        try self.event.start();        errdefer self.event.stop() catch {};        try self.wake_timer.startInterval(self.wake_interval_ns);    }    pub fn stop(self: *Sampler) !void {        var first_error: ?anyerror = null;        self.wake_timer.stop() catch |err| rememberError(&first_error, err);        self.event.stop() catch |err| rememberError(&first_error, err);        if (first_error) |err| return err;    }    pub fn ringReader(self: *Sampler) ?perf.RingReader {        return self.event.ringReader();    }    pub fn commitReader(self: *Sampler, reader: perf.RingReader) void {        self.event.commitReader(reader);    }    pub fn readLossCounter(self: *Sampler) LossCounter {        if (!self.loss_counter_supported) return .unsupported;        const result = self.event.countResult() catch return .read_failed;        return .{ .available = result.lost orelse return .read_failed };    }    pub fn pausingWait(self: *Sampler, wait_fn: WaitFn) PausingWait {        return .{ .sampler = self, .wait_fn = wait_fn };    }};

Source: lib/coz/src/root.zig:63

zig
pub const Sampler = sampler.Sampler;
Called byCallstest sourcelib.coz.src.samplertest: sampler close is idempotent wit...tiny.sysperf.Eventclosetiny.systimer.TimercloseSamplerclose
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callerstiny.sysperf.EventcommitReaderSamplercommitReader
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallstest sourcelib.coz.src.samplertest: sampler opens starts stops and ...private sourcelib.coz.src.sampleropenPerfEventsamplervalidateOptionssamplerwakeIntervalNstiny.systimer.TimercreateForCurrentThreadSampleropenCurrentThread
Static calls · unresolved targets: 2 · external targets: 0.
Called byCallsNo direct callstest sourcelib.coz.src.samplertest: sampler pausing wait delegates ...SamplerpausingWait
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callerstiny.sysperf.EventcountResultSamplerreadLossCounter
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callerstiny.sysperf.EventringReaderSamplerringReader
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallssampler.PausingWaitwaittest sourcelib.coz.src.samplertest: sampler start and stop reject u...tiny.sysperf.Eventstarttiny.sysperf.Eventstoptiny.systimer.TimerstartIntervalSamplerstart
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallssampler.PausingWaitwaittest sourcelib.coz.src.samplertest: sampler start and stop reject u...private sourcelib.coz.src.samplerrememberErrortiny.sysperf.Eventstoptiny.systimer.TimerstopSamplerstop
Static calls · unresolved targets: 0 · external targets: 0.

Audit

Definitions9
Public names18
Members4
Version26.7.0
Revisiondaab053ee433