Re: tds_socketpair on windows

"James K. Lowden" <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
On Sun, 1 Apr 2012 17:27:09 +0100
Frediano Ziglio <[email protected]> wrote:
> Il giorno 01/apr/2012, alle ore 16:35, "James K. Lowden"
> <[email protected]> ha scritto:
> > On Sun, 1 Apr 2012 11:24:18 +0100
> > Frediano Ziglio <[email protected]> wrote:
> > 
> >> Probably I'll rewrite this code using events (on Windows), for the
> >> moment streams are also ok.
> > 
> > Could you explain that a little bit?  Are you thinking of abandoning
> > the winsocket API?  
> 
> No, socket are required to use tcp/ip. In this case socketpair is
> used to stop select. 

I'm looking at the changes in mem.c 1.223 to use a socketpair.  I don't
understand what you mean by "to stop select".  I don't understand why
we need a pair of sockets.  To support MARS?  

>To do this in Windows you can associate a system
> event to a socket with WSAEventSelect so you can wait for events with
> WaitForSingleObject and stop it just setting the event. More Windows
> style and less resources used. I think in Linux I could use event_fd.
> Using socketpair is the more portable way.

WaitForSingleObject() requires threads.  event_fd is not portable and
not POSIX. 

We put a lot of work into making the network layer as portable and
simple as possible.  (We could do more: I am not convinced we need to
inhibit the Nagel algorithm, for example.)  I hope we will continue to
use POSIX constructs wherever possible, and not introduce OS-specific
calls unless there is no other choice.  

--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.