Skip to content

error: root struct of file 'atomic' has no member named 'Queue' #18253

@tanj

Description

@tanj

Zig Version

0.12.0-dev.1769+bf5ab5451

Steps to Reproduce and Observed Behavior

This example was basically taken from the test code for Watch

watch-crash.zig

const std = @import("std");
const Watch = std.fs.Watch;

pub fn main() !void {
    var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
    defer arena.deinit();

    var watch = try Watch(void).init(arena.allocator(), 0);
    defer watch.deinit();

    try watch.addFile("/sys/class/power_supply/BAT0/capacity", {});

    var event = async watch.channel.get();
    var event_consumed = false;
    defer if (!event_consumed) {
        _ = await event;
    };

    switch ((try await event).id) {
        .CloseWrite => {
            event_consumed = true;
        },
        .Delete => @panic("Delete event!"),
    }
}
  1. zig build-exe watch-crash.zig
  2. zig fails to build
/home/tanj/src/zig/build/stage3/lib/zig/std/event/channel.zig:12:28: error: root struct of file 'atomic' has no member named 'Queue'
        getters: std.atomic.Queue(GetNode),
                 ~~~~~~~~~~^~~~~~
/home/tanj/src/zig/build/stage3/lib/zig/std/atomic.zig:1:1: note: struct declared here
/// This is a thin wrapper around a primitive value to prevent accidental data races.
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
referenced by:
    Channel: /home/tanj/src/zig/build/stage3/lib/zig/std/event/channel.zig:11:12
    Channel: /home/tanj/src/zig/build/stage3/lib/zig/std/event.zig:1:49
    remaining reference traces hidden; use '-freference-trace' to see all reference traces

Expected Behavior

zig would build the file without an error related to std.atomic.Queue

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugObserved behavior contradicts documented or intended behavior

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions