Обсуждение: who calls InitializeTimeouts() ?

Поиск
Список
Период
Сортировка

who calls InitializeTimeouts() ?

От
Chapman Flack
Дата:
Hi,

It looks like for about 3 years, PL/Java has been calling
InitializeTimeouts before calling RegisterTimeout. Looking over
the callers of InitializeTimeouts in core, though, it appears
that an extension like PL/Java should be able to assume it has
already been called, and in fact would be rude to call it again,
as it isn't idempotent and could conceivably clobber somebody
else's timeouts.

As PL/Java only uses it for a timeout on process exit anyway,
perhaps this is a mistake that has just never had much chance
to cause a noticeable problem.

Am I right that it's a mistake, though?

Thanks,
-Chap



Re: who calls InitializeTimeouts() ?

От
Robert Haas
Дата:
On Wed, Nov 2, 2016 at 11:10 PM, Chapman Flack <chap@anastigmatix.net> wrote:
> It looks like for about 3 years, PL/Java has been calling
> InitializeTimeouts before calling RegisterTimeout. Looking over
> the callers of InitializeTimeouts in core, though, it appears
> that an extension like PL/Java should be able to assume it has
> already been called, and in fact would be rude to call it again,
> as it isn't idempotent and could conceivably clobber somebody
> else's timeouts.

Yep.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company