gri3-wm/include
Orestis 5aa0459be0 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-12 13:13:03 +01:00
..
i3 Fixes for undefined behaviour on signed shift (#3453) 2018-10-13 21:04:40 +03:00
all.h
assignments.h
atoms.xmacro
atoms_NET_SUPPORTED.xmacro
atoms_rest.xmacro
bindings.h
click.h
cmdparse.h
commands.h
commands_parser.h
con.h Remove unused con_get_next() 2018-12-09 08:04:41 +07:00
config_directives.h
config_parser.h
configuration.h Merge pull request #3452 from orestisf1993/title_align 2018-10-23 16:41:54 +02:00
data.h Add input and bounding shapes support (#2742) 2018-12-01 11:52:41 +07:00
display_version.h
ewmh.h
fake_outputs.h
floating.h Fix aspect ratio bugs 2018-11-12 18:45:00 +02:00
handlers.h Add input and bounding shapes support (#2742) 2018-12-01 11:52:41 +07:00
i3.h Add input and bounding shapes support (#2742) 2018-12-01 11:52:41 +07:00
ipc.h Use ipc queue for all messages (#3585) 2019-01-12 13:13:03 +01:00
key_press.h
libi3.h
load_layout.h
log.h
main.h
manage.h
match.h
move.h
output.h
queue.h
randr.h Merge pull request #3397 from orestisf1993/randr-enable-disable 2018-11-10 21:56:34 +01:00
regex.h
render.h render_con: Get rid of render_fullscreen argument 2018-11-12 19:05:50 +02:00
resize.h For resizing, convert pixel diff to percentage, based on parent. 2018-11-08 23:15:23 +01:00
restore_layout.h
scratchpad.h
sd-daemon.h
shmlog.h
sighandler.h
startup.h
sync.h
tree.h Update tree_close_internal documentation in tree.h 2018-12-14 23:46:21 +02:00
util.h
window.h Fix aspect ratio bugs 2018-11-12 18:45:00 +02:00
workspace.h Preserve back_and_forth during restart 2018-12-11 20:46:06 +07:00
x.h Add input and bounding shapes support (#2742) 2018-12-01 11:52:41 +07:00
xcb.h
xcursor.h
xinerama.h
yajl_utils.h