From: Tom Lane <tgl@sss.pgh.pa.us>
To: Igor Shevchenko <igor@carcass.ath.cx>
Cc: pgsql-interfaces@postgresql.org
Subject: Re: libpq/async notifications
Date: Tue, 14 Oct 2003 12:10:21 -0400
Message-ID: <9884.1066147821@sss.pgh.pa.us> (raw)
In-Reply-To: <200310111220.25923.igor@carcass.ath.cx>
References: <200310111220.25923.igor@carcass.ath.cx>
Igor Shevchenko <igor@carcass.ath.cx> writes:
> Is there a way to only check if there's any pending async notifications ?
> I've found only PQnotifies(..) but it also removes the first notification from
> the list.
> A function for only checking this can be used in a gui app to setup async
> notifications processing so it happens only after an app reaches it's main
> loop (which is a good idea since it won't happen in the middle of another
> app's handler function which happens to use pgsql database interface).
> Currently I have to check for notifications with PQnotifies every time my app
> returns to the main loop after using any of PGexec, etc, which is not very
> efficient.
"Not very efficient"? This seems like a very weak argument. The actual
cost of running the function is no different from PQnotifies in the case
where no notify event is found; and in the case where one is found, it'd
be slower because you'd then have to call PQnotifies anyway to remove
the item from the list.
Yes, I know the function is only five lines, but there are also
documentation and other maintenance costs to consider anytime we add
something to libpq's API. I don't think you've made enough of a case
for it.
regards, tom lane
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-interfaces@postgresql.org
Cc: tgl@sss.pgh.pa.us, igor@carcass.ath.cx
Subject: Re: libpq/async notifications
In-Reply-To: <9884.1066147821@sss.pgh.pa.us>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox