On Wed, Jan 28, 2009 at 12:51:04AM -0200, Mariano Martinez Peck wrote:
So, what I change openDBX code from this:
if( ( fd = PQsocket( (PGconn*) handle->generic ) ) == -1 ) { conn->errtype = -1; return -ODBX_ERR_BACKEND; } FD_ZERO( &fds ); FD_SET( fd, &fds ); switch( select( fd + 1, &fds, NULL, NULL, timeout ) )
to
do { if( ( fd = PQsocket( (PGconn*) handle->generic ) ) == -1 ) { conn->errtype = -1; return -ODBX_ERR_BACKEND; } FD_ZERO( &fds ); FD_SET( fd, &fds ); rv = select( fd + 1, &fds, NULL, NULL, timeout ); } while ((rv == -1) && (errno == EINTR)); switch( rv )
And now It works perfect. It was difficult to reproduce because openDBX tests where ok, but squeakDBX ones not. This is because of SqueakVM as you explain me.
Your change looks right to me.
Dave