server: improve blocked-write behaviour for handlers
We currently don't implement POLLOUT properly; we never set this for
polled events, and will repeat calls to write() if we see EAGAIN.
This change improves the behaviour when writes start to block, by
tracking when a fd is blocked. Once we detect blocking behaviour, we
supress future (non-forced) writes, and wait for POLLOUT so we know when
we can write again.
Change-Id: I809bde4e1c7c78a58ea296d5c076b3d93c272558
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
diff --git a/console-server.h b/console-server.h
index 0831c57..9571ff9 100644
--- a/console-server.h
+++ b/console-server.h
@@ -75,6 +75,9 @@
void console_poller_unregister(struct console *console, struct poller *poller);
+void console_poller_set_events(struct console *console, struct poller *poller,
+ int events);
+
/* ringbuffer API */
enum ringbuffer_poll_ret {
RINGBUFFER_POLL_OK = 0,