10:38wlb: weston Merge request !1562 opened by Marius Vlad (mvlad) headless, pipewire: Remove band-aids as they no longer needed https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1562 [Headless backend], [PipeWire Backend]
16:17karenthedorf: So, I'm looking at the output of WAYLAND_DEBUG. How/Why does the server send wl_display@1.delete_id(3), but then later on sends wl_callback@3.done(31974). How can it call .done on something it's deleted?
16:19karenthedorf: (I know the lifetime of wl_callback is 'weird' as it's server-destroyed via na event unlike most objects, but I still don't understand what's going on)
16:54sewn: latex: wmenu, mew, emenu, fuzzel
17:05kennylevinsen: karenthedorf: share the output?
18:36karenthedorf: kennylevinsen: https://pastebin.com/8HQQC4iL (My internet dropped, I may have missed pings)
18:37karenthedorf: On line 3 the server says delete_id(3), but then at the end of the registry spitting out globals it calls 3.done()
18:42karenthedorf: Also, how come there's no wl_registry.release like wl_seat and friends got in a later version?
18:42vyivel: wl_registry is frozen
18:43vyivel: wl_fixes addresses this
18:43karenthedorf: Ah, it has to remain forward compatible as well as backward?
18:44vyivel: the object version is (most of the time) defined by the version of the object which creates it (wl_display in this case via get_registry)
18:44karenthedorf: Oh, I think the comments on the wl_fixes MR answer my question:
18:44vyivel: and wl_display is special as it exists by default
18:44karenthedorf: "IDs are only re-used once both a wl_display.delete_id event has been received AND the client has explicitly destroyed the object."
18:44vyivel: and can't be changed
18:45vyivel: regarding id reuse, yeah that's it
18:45karenthedorf: If I extend that to "the client or server explicitly call the destructor" (as wl_callback is a destructor event, not a client callable function)
18:45karenthedorf: destructor events are quirky, I've seen it said before. Thanks vyivel.