From c7e391d65c14c484ed4c4b34cad0fa9e3f06aa55 Mon Sep 17 00:00:00 2001 From: Harry Jeffery Date: Thu, 15 Aug 2019 18:49:54 +0100 Subject: wl/x11: Ensure event writes are always atomic --- src/wl_window.c | 6 +++++- src/x11_window.c | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/wl_window.c b/src/wl_window.c index b5aac22..021d9aa 100644 --- a/src/wl_window.c +++ b/src/wl_window.c @@ -4,12 +4,13 @@ #include #include +#include #include #include #include #include -#include #include +#include #include #include @@ -687,6 +688,9 @@ static void shutdown_wayland(struct imv_window *window) struct imv_window *imv_window_create(int width, int height, const char *title) { + /* Ensure event writes will always be atomic */ + assert(sizeof(struct imv_event) <= PIPE_BUF); + struct imv_window *window = calloc(1, sizeof *window); window->scale = 1; window->wl_outputs = list_create(); diff --git a/src/x11_window.c b/src/x11_window.c index 7bf7d2b..1b7f724 100644 --- a/src/x11_window.c +++ b/src/x11_window.c @@ -2,6 +2,7 @@ #include #include +#include #include #include #include @@ -44,6 +45,9 @@ static void set_nonblocking(int fd) struct imv_window *imv_window_create(int w, int h, const char *title) { + /* Ensure event writes will always be atomic */ + assert(sizeof(struct imv_event) <= PIPE_BUF); + struct imv_window *window = calloc(1, sizeof *window); window->pointer.last.x = -1; window->pointer.last.y = -1; -- cgit v1.2.3