gri3-wm/include
Orestis 54e7a31568 Use ipc queue for all messages (#3585)
I was able to reproduce #3579 in Linux by running:
`sudo sysctl net.core.wmem_default=10000`

If a subscription message was too big to be sent at once, it was
possible to break a client by sending a reply to an other message sent
by the client. Eg:
- Write 8192 out of 11612 bytes of a workspace event.
- Blockingly write the reply to a workspace change message.
- Write the rest 3420 bytes of the workspace event.

This commit fixes this by utilizing the ipc queue for all types of
writes.

ipc_receive_message can only be called from a callback started in
ipc_new_client. This callback uses the same file descriptor with the
client also created in ipc_new_client. When the client is deleted, the
read callback is now also stopped. Thus, we can assume that whenever
ipc_receive_message is called, the corresponding client should still
exist.

- ipc_client now contains pointers to both write and read watchers. When
freed, a client will stop both of them.
- IPC_HANDLERs now work with ipc_clients instead of fds.

Fixes #3579.
2019-01-23 21:21:28 +01:00
..
i3 Fixes for undefined behaviour on signed shift (#3453) 2018-10-13 21:04:40 +03:00
all.h move i3 sync code into sync_respond (for following commits) 2018-03-30 21:05:32 +02:00
assignments.h Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
atoms.xmacro split atoms.xmacro into 2 files to obtain _NET_SUPPORTED count 2016-02-23 21:48:18 +01:00
atoms_NET_SUPPORTED.xmacro Support _NET_WM_STATE_FOCUSED 2018-03-23 14:30:57 +02:00
atoms_rest.xmacro Reject requests for WM_STATE_ICONIC 2018-09-25 15:04:55 +03:00
bindings.h Introduce --exclude-titlebar flag for mouse bindings. (#2703) 2017-05-02 09:08:42 +02:00
click.h Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
cmdparse.h Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
commands.h Make comment style more consistent 2018-10-13 21:10:10 +03:00
commands_parser.h Make comment style more consistent 2018-10-13 21:10:10 +03:00
con.h Make comment style more consistent 2018-10-13 21:10:10 +03:00
config_directives.h Add title_align config directive 2018-10-12 19:58:48 +03:00
config_parser.h Make comment style more consistent 2018-10-13 21:10:10 +03:00
configuration.h Merge pull request #3452 from orestisf1993/title_align 2018-10-23 16:41:54 +02:00
data.h Respect max size in WM_NORMAL_HINTS 2018-09-20 11:31:19 +03:00
display_version.h Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
ewmh.h Support _NET_WM_STATE_FOCUSED 2018-03-23 14:30:57 +02:00
fake_outputs.h Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
floating.h cmd_move_window_to_position: improve error message 2018-03-20 16:59:06 +02:00
handlers.h Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
i3.h skip ConfigureNotify events with --force_xinerama 2017-10-23 21:04:20 +02:00
ipc.h Use ipc queue for all messages (#3585) 2019-01-23 21:21:28 +01:00
key_press.h Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
libi3.h Make comment style more consistent 2018-10-13 21:10:10 +03:00
load_layout.h validate JSON before loading 2017-09-13 17:41:05 +02:00
log.h Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
main.h Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
manage.h Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
match.h Make comment style more consistent 2018-10-13 21:10:10 +03:00
move.h Fix focus order in floating_disable for unfocused windows 2018-03-30 18:20:40 +03:00
output.h output_push_sticky_windows: Make a bit easier to understand 2018-10-11 12:27:56 +03:00
queue.h switch to clang-format-3.8 (#2547) 2016-11-08 13:46:43 -08:00
randr.h Make comment style more consistent 2018-10-13 21:10:10 +03:00
regex.h Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
render.h Make comment style more consistent 2018-10-13 21:10:10 +03:00
resize.h Ensure containers have a size of at least 1px after resize 2018-09-06 04:56:31 +03:00
restore_layout.h Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
scratchpad.h Make "scratchpad show" return correct info 2018-04-20 22:30:41 +08:00
sd-daemon.h Replace http:// with https:// where applicable 2017-09-24 10:19:07 +02:00
shmlog.h Make comment style more consistent 2018-10-13 21:10:10 +03:00
sighandler.h Rewrite the signal handler dialogs. 2017-01-10 20:13:25 +01:00
startup.h Fix typo: childs -> children 2018-10-13 21:10:11 +03:00
sync.h move i3 sync code into sync_respond (for following commits) 2018-03-30 21:05:32 +02:00
tree.h Simplify tree_close_internal 2018-07-30 19:41:24 +03:00
util.h Make comment style more consistent 2018-10-13 21:10:10 +03:00
window.h Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
workspace.h Allow multiple assignments of workspaces to outputs 2018-07-12 17:07:01 +03:00
x.h Reframe swallowed windows if depth doesn't match 2018-06-02 14:32:47 +03:00
xcb.h Refocus focused window for FOCUS_IN events on the root window. (#3097) 2018-03-10 19:18:44 +01:00
xcursor.h Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
xinerama.h Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
yajl_utils.h Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00