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 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 Remove unused con_get_next() 2018-12-09 08:04:41 +07: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 Add input and bounding shapes support (#2742) 2018-12-01 11:52:41 +07: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 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 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 Merge pull request #3397 from orestisf1993/randr-enable-disable 2018-11-10 21:56:34 +01:00
regex.h Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
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 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 Update tree_close_internal documentation in tree.h 2018-12-14 23:46:21 +02:00
util.h Make comment style more consistent 2018-10-13 21:10:10 +03:00
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 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