diff options
author | Aylur <[email protected]> | 2024-08-11 02:39:49 +0200 |
---|---|---|
committer | Aylur <[email protected]> | 2024-08-11 02:39:49 +0200 |
commit | c52e41429004c01aceb0d549b5feffdb3f6ec65a (patch) | |
tree | cf8df436ab4015e2aa567bd97421ff7f81e0b0c0 | |
parent | c6b669f0ed6aaa0383b2b0107e3004bc5b716ecd (diff) |
fix: dangling socket on crash
check running instance through dbus
-rw-r--r-- | src/astal.vala | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/astal.vala b/src/astal.vala index 80ad047..316da6b 100644 --- a/src/astal.vala +++ b/src/astal.vala @@ -126,12 +126,21 @@ public class Application : Gtk.Application { */ [DBus (visible=false)] public bool acquire_socket() { + foreach (var instance in get_instances()) { + if (instance == instance_name) { + return false; + } + } + var rundir = GLib.Environment.get_user_runtime_dir(); socket_path = @"$rundir/$instance_name.sock"; if (FileUtils.test(socket_path, GLib.FileTest.EXISTS)) { - info("socket %s exists", socket_path); - return false; + try { + File.new_for_path(socket_path).delete(null); + } catch (Error err) { + critical(err.message); + } } try { |