gri3-wm/docs
Orestis Floros 37d0105c83
Kill misbehaving subscribed clients instead of hanging
This change only affects clients that are subscribed to events, which
should be the main cause of our problems.

In the common case (no buffered data) the behaviour doesn't change at
all: the message is sent directly, no ev_io / ev_timeout callback is
enabled. Once a write to a client's socket is not completed fully
(returns with EAGAIN error), we put the message in the tail of a queue
and init an ev_io callback and a corresponding timer. If the timer is
triggered first, the socket is closed and the client connection is
removed. If the socket becomes writeable before the timeout we either
reset the timer if we couldn't push all the buffered data or completely
remove it if everything was pushed.

We could also replace ipc_send_message() for all client connections in
i3, not just those subscribed to events.

Furthermore, we could limit the amount of messages stored and increase
the timeout (or use multiple timeouts): eg it's ok if a client is not
reading for 10 seconds and we are only holding 5KB of messages for them
but it is not ok if they are inactive for 5 seconds and we have 30MB of
messages held.

Closes #2999
Closes #2539
2018-08-08 19:14:56 +03:00
..
GPN-2009-06-27 s/i3.zekjur.net/i3wm.org/g 2011-08-28 17:44:42 +02:00
NoName-2009-03-12 docs/NoName-2009-03-12: add missing screenshot 2014-01-26 16:39:09 +01:00
slides-2012-01-25 Add presentation slides from 2012-01-25 2012-01-25 21:16:21 +00:00
slides-2012-03-16 add slides from 2012-03-16 (German) 2012-06-10 18:17:02 +02:00
asciidoc-git.conf Replace http:// with https:// where applicable 2017-09-24 10:19:07 +02:00
bigpicture.png Some more work on the how to hack documentation 2009-04-30 17:27:58 +02:00
bigpicture.xcf Some more work on the how to hack documentation 2009-04-30 17:27:58 +02:00
debugging Add an i3bar flag: --verbose 2018-04-13 23:09:44 +08:00
hacking-howto Replace http:// with https:// where applicable 2017-09-24 10:19:07 +02:00
i3-pod2html Replace http:// with https:// where applicable 2017-09-24 10:19:07 +02:00
i3-sync-working.dia Add docs/testsuite 2011-09-24 20:10:01 +01:00
i3-sync-working.png Add docs/testsuite 2011-09-24 20:10:01 +01:00
i3-sync.dia Add docs/testsuite 2011-09-24 20:10:01 +01:00
i3-sync.png Add docs/testsuite 2011-09-24 20:10:01 +01:00
i3bar-protocol docs/i3bar-protocol: fix typo 2018-07-16 08:54:08 -05:00
ipc Kill misbehaving subscribed clients instead of hanging 2018-08-08 19:14:56 +03:00
keyboard-layer1.png docs/userguide: update keyboard-layer images, remove incomplete warning 2011-07-31 23:53:26 +02:00
keyboard-layer1.svg docs/userguide: update keyboard-layer images, remove incomplete warning 2011-07-31 23:53:26 +02:00
keyboard-layer2.png docs/userguide: update keyboard-layer images, remove incomplete warning 2011-07-31 23:53:26 +02:00
keyboard-layer2.svg Include graphic of the default keyboard layout in user’s guide 2010-03-07 21:12:59 +01:00
layout-saving Replace http:// with https:// where applicable 2017-09-24 10:19:07 +02:00
layout-saving-1.png add missing docs/layout-saving-1.png 2014-04-26 12:46:25 +02:00
logo-30.png replace the refcard with an HTML version (by SardemFF7) 2012-04-12 16:04:29 +02:00
modes.png Update userguide 2009-10-23 19:53:36 +02:00
multi-monitor docs/multi-monitor: nVidia ≥ 302.17 works just fine (Thanks HedgeMage) 2013-04-06 22:49:14 +02:00
refcard.html Replace http:// with https:// where applicable 2017-09-24 10:19:07 +02:00
refcard_style.css add missing docs/refcard_style.css to git 2012-04-13 13:38:06 +02:00
single_terminal.png userguide: Document most features 2009-06-01 14:59:25 +02:00
snapping.png userguide: Document most features 2009-06-01 14:59:25 +02:00
testsuite tests: run under Xvfb by default (if available) (#2951) 2017-10-13 00:18:49 -07:00
tree-layout1.png docs: add tree-*.png (for tree-migrating) 2011-01-29 18:31:09 +01:00
tree-layout2.png docs: add tree-*.png (for tree-migrating) 2011-01-29 18:31:09 +01:00
tree-shot1.png docs: add tree-*.png (for tree-migrating) 2011-01-29 18:31:09 +01:00
tree-shot2.png docs: add tree-*.png (for tree-migrating) 2011-01-29 18:31:09 +01:00
tree-shot3.png docs: add tree-*.png (for tree-migrating) 2011-01-29 18:31:09 +01:00
tree-shot4.png docs: add tree-*.png (for tree-migrating) 2011-01-29 18:31:09 +01:00
two_columns.png userguide: Document most features 2009-06-01 14:59:25 +02:00
two_terminals.png userguide: Document most features 2009-06-01 14:59:25 +02:00
userguide Allow multiple assignments of workspaces to outputs 2018-07-12 17:07:01 +03:00
wsbar Replace http:// with https:// where applicable 2017-09-24 10:19:07 +02:00
wsbar.dia Add documentation for external workspace bars 2011-01-29 15:19:11 +01:00
wsbar.png Add documentation for external workspace bars 2011-01-29 15:19:11 +01:00