tiny.coz.Sampler
Defined in sampler.
API (12)
Actions
Public operations.
Fields and members
Public fields and members.
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;Audit
| Definitions | 9 |
|---|---|
| Public names | 18 |
| Members | 4 |
| Version | 26.7.0 |
| Revision | daab053ee433 |