How to manage shared library lifetime through C functions - Mailing list pgsql-hackers

From Seref Arikan
Subject How to manage shared library lifetime through C functions
Date
Msg-id CA+4ThdpAd=wnCHN-N-Js2kmmNMv8Er4vZY4HjoUB=xLtRCd0yQ@mail.gmail.com
Whole thread Raw
Responses Re: How to manage shared library lifetime through C functions
Re: How to manage shared library lifetime through C functions
List 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 by date:

Previous
From: Fabien COELHO
Date:
Subject: Re: add modulo (%) operator to pgbench
Next
From: Albe Laurenz
Date:
Subject: Re: How to manage shared library lifetime through C functions