How to manage shared library lifetime through C functions

Поиск
Список
Период
Сортировка
От Seref Arikan
Тема How to manage shared library lifetime through C functions
Дата
Msg-id CA+4ThdpAd=wnCHN-N-Js2kmmNMv8Er4vZY4HjoUB=xLtRCd0yQ@mail.gmail.com
обсуждение исходный текст
Ответы Re: How to manage shared library lifetime through C functions  (Albe Laurenz <laurenz.albe@wien.gv.at>)
Re: How to manage shared library lifetime through C functions  (Heikki Linnakangas <hlinnakangas@vmware.com>)
Список pgsql-hackers
Greetings,
I hope this is the right group to ask this question; apologies if this should go the general or some other list.

I have multiple shared libraries that can be called from C that I'd like to use from a C based postgresql function.

These libraries perform some expensive initialization and they require the C code to properly release resources when the library is no longer needed.

This means that I need a mechanism to keep a session level pointer to a library, initialize it when it is called first from a C based function and dispose the library properly when the session ends (and terminated due to a problem) I would like to keep the libraries available as long as the session is alive, so multiple calls are supposed to avoid initialization/disposal costs every time.

I could probably use a temp table as a container for the initalization and even pointer values (sounds dirty) but I have no idea how to hook to session end to clean up when session ends.

What would be a good strategy here?

Regards
Seref

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

Предыдущее
От: Fabien COELHO
Дата:
Сообщение: Re: add modulo (%) operator to pgbench
Следующее
От: Albe Laurenz
Дата:
Сообщение: Re: How to manage shared library lifetime through C functions