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

From Albe Laurenz
Subject Re: How to manage shared library lifetime through C functions
Date
Msg-id A737B7A37273E048B164557ADEF4A58B17D23412@ntex2010i.host.magwien.gv.at
Whole thread Raw
In response to Re: How to manage shared library lifetime through C functions  (Craig Ringer <craig@2ndquadrant.com>)
Responses Re: How to manage shared library lifetime through C functions
List pgsql-hackers
Craig Ringer wrote:
> On 08/04/2014 06:31 PM, Seref Arikan wrote:
>> Thanks a lot Heikki and Albe. Exactly what I was asking for.
>> Heikki: the libraries are written in languages that have their own
>> runtime and their documentation insists that both init and dispose calls
>> are performed when used from C. PG_init() and proc_exit sounds spot on.
> 
> That's usually with reference to code that might then load them again,
> such as another library. Without specifics it's hard to say.
> 
> If these tools depend on the C code terminating cleanly to operate
> correctly then they'll also break if the OS crashes, the system loses
> power, etc.
> 
> Exiting a program without calling cleanup is in many ways just a
> particularly friendly kind of crash, and it's often actually much more
> efficient than doing cleanup. Why neatly tidy the floor when you're
> about to demolish the house? Total waste of time.

There are valid use cases (else the function probably wouldn't exist).
I use it in oracle_fdw to gracefully close any open Oracle connections when
the process exits.

Yours,
Laurenz Albe

pgsql-hackers by date:

Previous
From: Seref Arikan
Date:
Subject: Re: How to manage shared library lifetime through C functions
Next
From: Craig Ringer
Date:
Subject: Re: How to manage shared library lifetime through C functions