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 /swaybg/main.c | |
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 'swaybg/main.c')
-rw-r--r-- | swaybg/main.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/swaybg/main.c b/swaybg/main.c index b936be2b..fbd0d16b 100644 --- a/swaybg/main.c +++ b/swaybg/main.c | |||
@@ -21,7 +21,7 @@ enum scaling_mode { | |||
21 | SCALING_MODE_TILE, | 21 | SCALING_MODE_TILE, |
22 | }; | 22 | }; |
23 | 23 | ||
24 | void sway_terminate(void) { | 24 | void sway_terminate(int exit_code) { |
25 | int i; | 25 | int i; |
26 | for (i = 0; i < surfaces->length; ++i) { | 26 | for (i = 0; i < surfaces->length; ++i) { |
27 | struct window *window = surfaces->items[i]; | 27 | struct window *window = surfaces->items[i]; |
@@ -29,7 +29,7 @@ void sway_terminate(void) { | |||
29 | } | 29 | } |
30 | list_free(surfaces); | 30 | list_free(surfaces); |
31 | registry_teardown(registry); | 31 | registry_teardown(registry); |
32 | exit(EXIT_FAILURE); | 32 | exit(exit_code); |
33 | } | 33 | } |
34 | 34 | ||
35 | int main(int argc, const char **argv) { | 35 | int main(int argc, const char **argv) { |