mirror of
https://github.com/awesomeWM/awesome
synced 2024-11-17 07:47:41 +01:00
75ed165ae6
The code was written so that it assumes that disconnecting the last signal also removed the corresponding entry in the signal array. This lead e.g. to an index-out-of-bounds access in some cases. Signed-off-by: Uli Schlachter <psychon@znc.in>
35 lines
851 B
Lua
35 lines
851 B
Lua
local runner = require("_runner")
|
|
local awful = require("awful")
|
|
|
|
local calls_done = 0
|
|
|
|
local function dbus_callback(data)
|
|
assert(data.member == "Ping")
|
|
calls_done = calls_done + 1
|
|
end
|
|
|
|
dbus.request_name("session", "org.awesomewm.test")
|
|
|
|
-- Yup, we had a bug that made the following not work
|
|
dbus.connect_signal("org.awesomewm.test", dbus_callback)
|
|
dbus.disconnect_signal("org.awesomewm.test", dbus_callback)
|
|
dbus.connect_signal("org.awesomewm.test", dbus_callback)
|
|
|
|
for _=1, 2 do
|
|
awful.spawn({
|
|
"dbus-send",
|
|
"--dest=org.awesomewm.test",
|
|
"--type=method_call",
|
|
"/",
|
|
"org.awesomewm.test.Ping",
|
|
"string:foo"
|
|
})
|
|
end
|
|
|
|
runner.run_steps({ function()
|
|
if calls_done >= 2 then
|
|
return true
|
|
end
|
|
end })
|
|
|
|
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
|