Re: Concurrent psql patch - Mailing list pgsql-patches

From Tom Lane
Subject Re: Concurrent psql patch
Date
Msg-id 20807.1180039793@sss.pgh.pa.us
Whole thread Raw
In response to Re: Concurrent psql patch  (Andrew Dunstan <andrew@dunslane.net>)
Responses Re: Concurrent psql patch  (Andrew Dunstan <andrew@dunslane.net>)
Re: Concurrent psql patch  (Gregory Stark <stark@enterprisedb.com>)
List pgsql-patches
Andrew Dunstan <andrew@dunslane.net> writes:
>             if (pset.c->db->asyncStatus != PGASYNC_BUSY)
>             {
>                 break;
>             }

There already is a defined API for this, namely PQisBusy().

In any case, I rather concur with the XXX comment: busy-waiting like
this sucks.  The correct way to do this is to get the socket numbers for
the connections (via PQsocket), wait for any of them to be read-ready
according to select() (or for the timeout to elapse, assuming that we
think that behavior is good), then cycle through PQconsumeInput() and
PQisBusy() on each connection.  See
http://www.postgresql.org/docs/8.2/static/libpq-async.html

            regards, tom lane

pgsql-patches by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: Concurrent psql patch
Next
From: Andrew Dunstan
Date:
Subject: Re: Concurrent psql patch