Re: Interrupting long external library calls

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: Interrupting long external library calls
Дата
Msg-id 4FB383C9.30402@enterprisedb.com
обсуждение исходный текст
Ответ на Interrupting long external library calls  (Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>)
Ответы Re: Interrupting long external library calls  (Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>)
Список pgsql-hackers
On 16.05.2012 13:25, Mark Cave-Ayland wrote:
> One of the issues we've been looking at with PostGIS is how to interrupt
> long-running processing tasks in external libraries, particularly GEOS.
> After a few tests here, it seems that even the existing SIGALRM handler
> doesn't get called if statement_timeout is reached when in an external
> library, e.g. with PostgreSQL 9.0/PostGIS 2.0 trunk/GEOS:

If you interrupt an external library call, it might leave memory in an 
inconsistent state, or some other such thing. It's not generally safe to 
interrupt arbitrary 3rd party code.

However, if you're absolutely positively sure that the library function 
can tolerate that, you can set "ImmediateInterruptOK = true" before 
calling it. See e.g PGSemaphoreLock() on how that's done before starting 
to sleep on a semapgore.

--   Heikki Linnakangas  EnterpriseDB   http://www.enterprisedb.com


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Mark Cave-Ayland
Дата:
Сообщение: Interrupting long external library calls
Следующее
От: Mark Cave-Ayland
Дата:
Сообщение: Re: Interrupting long external library calls