From f9044ec88339ea1f4b0abb9875d61a71a507b853 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Fri, 15 Feb 2019 22:01:07 +0100 Subject: [PATCH] module/i3: add a 'burst_done()' callback This callback is called after all received packets have been processed, before going into a blocking poll() again. --- modules/i3-common.c | 3 +++ modules/i3-common.h | 2 ++ 2 files changed, 5 insertions(+) diff --git a/modules/i3-common.c b/modules/i3-common.c index 939fe30..0da04a5 100644 --- a/modules/i3-common.c +++ b/modules/i3-common.c @@ -298,6 +298,9 @@ i3_receive_loop(int abort_fd, int sock, memmove(buf, &buf[total_size], buf_idx - total_size); buf_idx -= total_size; } + + if (cbs->burst_done != NULL) + cbs->burst_done(data); } free(buf); diff --git a/modules/i3-common.h b/modules/i3-common.h index bbfe80f..975d42a 100644 --- a/modules/i3-common.h +++ b/modules/i3-common.h @@ -15,6 +15,8 @@ bool i3_send_pkg(int sock, int cmd, char *data); typedef bool (*i3_ipc_callback_t)(int type, const struct json_object *json, void *data); struct i3_ipc_callbacks { + void (*burst_done)(void *data); + i3_ipc_callback_t reply_command; i3_ipc_callback_t reply_workspaces; i3_ipc_callback_t reply_subscribe;