aboutsummaryrefslogtreecommitdiffstats
path: root/sway/main.c
diff options
context:
space:
mode:
authorLibravatar minus <minus@mnus.de>2015-08-20 15:12:34 +0200
committerLibravatar minus <minus@mnus.de>2015-08-20 15:27:56 +0200
commitf26ed32e460f3007e623c529d28562f4a0b261cd (patch)
tree20194ff714e5351a435746b89aab17a9944dc934 /sway/main.c
parentset IPC client sockets to close on exec (diff)
downloadsway-f26ed32e460f3007e623c529d28562f4a0b261cd.tar.gz
sway-f26ed32e460f3007e623c529d28562f4a0b261cd.tar.zst
sway-f26ed32e460f3007e623c529d28562f4a0b261cd.zip
added sway_terminate to exit cleanly
Diffstat (limited to 'sway/main.c')
-rw-r--r--sway/main.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/sway/main.c b/sway/main.c
index a42fbcb7..f37f086d 100644
--- a/sway/main.c
+++ b/sway/main.c
@@ -10,6 +10,14 @@
10#include "log.h" 10#include "log.h"
11#include "handlers.h" 11#include "handlers.h"
12#include "ipc.h" 12#include "ipc.h"
13#include "sway.h"
14
15static bool terminate_request = false;
16
17void sway_terminate(void) {
18 terminate_request = true;
19 wlc_terminate();
20}
13 21
14static void sigchld_handle(int signal); 22static void sigchld_handle(int signal);
15 23
@@ -102,12 +110,15 @@ int main(int argc, char **argv) {
102 110
103 ipc_init(); 111 ipc_init();
104 112
105 wlc_run(); 113 if (!terminate_request) {
114 wlc_run();
115 }
116
106 if (devnull) { 117 if (devnull) {
107 fclose(devnull); 118 fclose(devnull);
108 } 119 }
109 120
110 ipc_shutdown(); 121 ipc_terminate();
111 122
112 return 0; 123 return 0;
113} 124}