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