summaryrefslogtreecommitdiffstats
path: root/swaylock/main.c
diff options
context:
space:
mode:
authorLibravatar Mikkel Oscar Lyderik <mikkeloscar@gmail.com>2016-02-26 09:08:05 +0100
committerLibravatar Mikkel Oscar Lyderik <mikkeloscar@gmail.com>2016-02-26 09:42:21 +0100
commit5e253fdd9ac5c8733203eec9870aa0ca2cd238fd (patch)
tree3bfaae22500ddfc326dfd4fa4b81bbab285a4c2f /swaylock/main.c
parentMerge pull request #494 from gpyh/argsegfault (diff)
downloadsway-5e253fdd9ac5c8733203eec9870aa0ca2cd238fd.tar.gz
sway-5e253fdd9ac5c8733203eec9870aa0ca2cd238fd.tar.zst
sway-5e253fdd9ac5c8733203eec9870aa0ca2cd238fd.zip
Correctly exit sway on errors.
Calling `exit` in sway_terminate prevents sway from correctly shutting down (freeing data, cleanly terminating the ipc server, etc.). A better way is to exit straight away if the failure occurs before `wlc_run` and use sway_abort as usual if it occur when wlc is running.
Diffstat (limited to 'swaylock/main.c')
-rw-r--r--swaylock/main.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/swaylock/main.c b/swaylock/main.c
index 9b14086d..b20883af 100644
--- a/swaylock/main.c
+++ b/swaylock/main.c
@@ -24,7 +24,7 @@ enum scaling_mode {
24 SCALING_MODE_TILE, 24 SCALING_MODE_TILE,
25}; 25};
26 26
27void sway_terminate(void) { 27void sway_terminate(int exit_code) {
28 int i; 28 int i;
29 for (i = 0; i < surfaces->length; ++i) { 29 for (i = 0; i < surfaces->length; ++i) {
30 struct window *window = surfaces->items[i]; 30 struct window *window = surfaces->items[i];
@@ -32,7 +32,7 @@ void sway_terminate(void) {
32 } 32 }
33 list_free(surfaces); 33 list_free(surfaces);
34 registry_teardown(registry); 34 registry_teardown(registry);
35 exit(EXIT_FAILURE); 35 exit(exit_code);
36} 36}
37 37
38char *password; 38char *password;