Re: always poll, even without poll(2)

"James K. Lowden" <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
Frediano Ziglio wrote:
> 
> Mmmm... I would put fakepoll.h in include/replacements directory. Also
> there is similar function named tds_REPLACED so perhaps it would be
> better to call this function tds_poll for coherence. Also for
> coherence in include/replacements.h I used defines like
> 
> #define poll(a,b,c) tds_poll(a,b,c)
> 
> if poll is not defined. You could include
> include/replacements/fakepoll.h in include/replacements.h or just
> include <replacements/fakepoll.h> when used.  

Will do.  

I think this is wrong, though:

> Sat Dec 20 20:11:46 CET 2008
> 	* src/replacements/fakepoll.c: 
>		fix win32 portability issue

http://msdn.microsoft.com/en-us/library/ms740141(VS.85).aspx

Microsoft says they *ignore* nfds (parameter 1 of select(2)).  So it's OK
to pass any value to Win32's select() function.  

More important, we should check against FD_SETSIZE even on Win32: 

	"The variable FD_SETSIZE determines the maximum number of descriptors in
a set. (The default value of FD_SETSIZE is 64, which can be modified by
defining FD_SETSIZE to another value before including Winsock2.h.)"  

but the count, not the maxfd, is what matters.  

I updated fakepoll.c according to that theory.  I left in the maxfd
computation because preprocessor directives make code hard to read and
understand.  The fewer we have, the better, even if it means a few extra
cycles.  

--jkl
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.