The bug is in xfce4-session/xfce-screensaver.c (and in xfce4-session/xfsm-systemd.c before git commit 9fa8c63b4377bcb46b8471da509ff8bd909c4bf0).
A locker should be called syncronously, not by g_spawn_command_line_async (), but by g_spawn_command_line_sync () or directly by g_spawn_sync(), and the provided exit_status should be taken into account. https://developer.gnome.org/glib/stable/glib-Spawning-Processes.html#g-spawn-command-line-sync
I.e. something like this:
gint *exit_status g_spawn_command_line_sync ("xflock4", NULL, NULL, exit_status, NULL); if (exit_status != NULL && *exit_status == 0) return TRUE; return FALSE;
The bug is in xfce4-session/ xfce-screensave r.c (and in xfce4-session/ xfsm-systemd. c before git commit 9fa8c63b4377bcb 46b8471da509ff8 bd909c4bf0) .
A locker should be called syncronously, not by g_spawn_ command_ line_async (), but by g_spawn_ command_ line_sync () or directly by g_spawn_sync(), and the provided exit_status should be taken into account. /developer. gnome.org/ glib/stable/ glib-Spawning- Processes. html#g- spawn-command- line-sync
https:/
I.e. something like this:
gint *exit_status command_ line_sync ("xflock4", NULL, NULL, exit_status, NULL);
g_spawn_
if (exit_status != NULL && *exit_status == 0) return TRUE;
return FALSE;