Fix poll able streams for Darwin (and probably BSD)

Darwin's poll doesn't change revents if there are no available events, though it returns 0. Initialize the fd.revents to 0 so that the test passes.

That reveals a test failure, though, because with socket streams it takes time for an event to pass through the socket. Provide an 80-usec delay to allow time for the propagation.
This commit is contained in:
John Ralls
2012-11-09 09:22:19 -08:00
parent 5588d47985
commit b65dac802e
5 changed files with 12 additions and 0 deletions

View File

@@ -532,6 +532,7 @@ g_unix_output_stream_pollable_is_writable (GPollableOutputStream *stream)
poll_fd.fd = unix_stream->priv->fd;
poll_fd.events = G_IO_OUT;
poll_fd.revents = 0;
do
result = g_poll (&poll_fd, 1, 0);