diff options
author | Mikkel Oscar Lyderik <mikkeloscar@gmail.com> | 2016-02-26 09:08:05 +0100 |
---|---|---|
committer | Mikkel Oscar Lyderik <mikkeloscar@gmail.com> | 2016-02-26 09:42:21 +0100 |
commit | 5e253fdd9ac5c8733203eec9870aa0ca2cd238fd (patch) | |
tree | 3bfaae22500ddfc326dfd4fa4b81bbab285a4c2f /swaylock | |
parent | Merge pull request #494 from gpyh/argsegfault (diff) | |
download | sway-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')
-rw-r--r-- | swaylock/main.c | 4 |
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 | ||
27 | void sway_terminate(void) { | 27 | void 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 | ||
38 | char *password; | 38 | char *password; |