# Re: \[PATCH v2\] compat: Add another rudimentary poll() emulation

- From: Jonathan Nieder \<hidden\>
- Date: 2016-06-15 22:48:52 
- List: git
- Page: https://ratatoskr.run/git/2016/06/7466268
- Thread: https://ratatoskr.run/git/2016/06/7465679/t.md

```text
Johannes Sixt wrote:

> It cannot work on msysgit because
> 
> - on Windows, select() works only for sockets, but we poll() on pipes, too;
> 
> - in our emulation layer, fds that are sockets must be unpacked with 
> _get_osfhandle() before they can be passed to FD_SET() because (as Paolo has 
> pointed out) FD_SET() must be populated with handles, not fds.

Thanks for the explanation.  Alas.

>From <http://www.suacommunity.com/man/2/select.2.html> I get the
impression that FD_SETSIZE on Interix might not be so small after all
(good).  Apparently older versions of Interix (5.3?) do not obey
timeouts properly, so the poll() in compat/poll.c should probably use
usleep() instead (meh).

Anyway, I leave it to developers on that platform to take it from here
if they so wish.

Ciao,
Jonathan
```
