Commit graph

5 commits

Author SHA1 Message Date
Pierre Ossman
6f4e08140f daemon: get rid of win32 message timer
We don't need a timer to check for Windows messages anymore
now that our fancy new poll() implementation does that for us.
2014-06-06 15:50:24 +03:00
Pierre Ossman
f70ec2776a poll: don't let select() block on Windows
We cannot let select() block as we won't wake up on the other
things that MsgWaitForMultipleObjects() can monitor.
2014-06-06 15:50:09 +03:00
Pierre Ossman
7776a42be4 poll: don't use shared event in Windows pa_poll()
We call pa_poll concurrently from multiple threads, so we cannot
have an event object that is reused.
2014-06-06 15:40:30 +03:00
Pierre Ossman
0138a51a2c core: make sure win32 sockets remain blocking
Commit 7e344b5 hade the side effect of forcing every socket to
be non-blocking on Windows. This is because of a (documented)
side effect of WSAEventSelect(). So we need to make sure to restore
blocking behaviour afterwards for relevant sockets.
2013-11-15 10:53:19 +02:00
Thomas Martitz
7e344b5ff0 core: Proper poll() emulation to fix pacat and friends on Windows
Currently, Windows versions of pacat and friends fail because the current
poll emulation is not sufficient (it only works for socket fds).

Luckily Gnulib has a much better emulation that seems to work good enough.
The implementation has been largely copied (except a few bug fix
regarding timeout handling, to be pushed upstream) and works on pipes
and files as well. The copy has been obtained through their gnulib-tool utility,
which gives a LGPLv2.1+ licensed file.

This fixes the "Assertion (!e->dead) failed" error coming and lets pacat
and friends stream happily to/from a server (I didn't actually test parec).
2012-10-30 16:22:18 +05:30