Re: Re: ps and psql from PostgreSQL not working with cygwin-1.1.5-2 - Mailing list pgsql-ports

From Pete Forman
Subject Re: Re: ps and psql from PostgreSQL not working with cygwin-1.1.5-2
Date
Msg-id 14855.49635.565990.716645@kryten.bedford.waii.com
Whole thread Raw
In response to Re: Re: ps and psql from PostgreSQL not working with cygwin-1.1.5-2  (Jason Tishler <Jason.Tishler@dothill.com>)
Responses Re: Re: ps and psql from PostgreSQL not working with cygwin-1.1.5-2
List pgsql-ports
Jason Tishler writes:
 > Sorry for not letting this thread die...
 >
 > On Sat, Nov 04, 2000 at 01:19:50AM +0100, Corinna Vinschen wrote:
 > > That's the problem. I thought about changing the behaviour of
 > > connect two weeks ago. I'm not sure if it makes sense to change
 > > the error code translation table for exactly that reason: Who
 > > knows what that would break? Perhaps it's better to change only
 > > the connect call to return EINPROGRESS. On the other hand Winsock
 > > seem to have interchanged the meaning of WOULDBLOCK and
 > > INPROGRESS (by mistake?). Hmmm.
 >
 > Can some one very knowledgeable with socket programming (hopefully
 > on many platforms) please help us out?  Should socket clients
 > (e.g., psql) be expected to test errno for EWOULDBLOCK (a.k.a
 > EAGAIN) when connect() returns -1?  Or, should cygwin map
 > EWOULDBLOCK to EINPROGRESS, at least for connect()?

According to POSIX, connect() should never set errno to EAGAIN or
EWOULDBLOCK.  (Those codes are appropriate for accept().)

  If the connection cannot be established immediately and O_NONBLOCK
  is set for the file descriptor for the socket, connect( ) shall fail
  and set errno to [EINPROGRESS], but the connection request shall not
  be aborted, and the connection shall be established asynchronously.
  Subsequent calls to connect( ) for the same socket, before the
  connection is established, shall fail and set errno to [EALREADY].

  When the connection has been established asynchronously, select( )
  and poll( ) shall indicate that the file descriptor for the socket
  is ready for writing.


  Upon successful completion, connect( ) shall return 0; otherwise, -1
  shall be returned and errno set to indicate the error.

If you want to research how sockets really behave on different
platforms have a look at ACE.  That is a thin wrapper that copes
with the idiosyncrasies of different OSs including Win32.

  http://www.cs.wustl.edu/~schmidt/ACE-overview.html

--
Pete Forman                 -./\.- Disclaimer: This post is originated
Western Geophysical           -./\.-  by myself and does not represent
pete.forman@westgeo.com         -./\.-  the opinion of Baker Hughes or
http://www.crosswinds.net/~petef  -./\.-  its divisions.

pgsql-ports by date:

Previous
From: lbottorff@harveycounty.com
Date:
Subject: RE: Errors building Postgres on NT
Next
From: "Edward Q. Bridges"
Date:
Subject: linker (ld2/dllwrap) error for PL/Perl using Cygwin port