Re: Patch to allow C extension modules to initialize/finish

From: "Ralf S(dot) Engelschall" <rse(at)engelschall(dot)com>
To: tomas(at)tuxteam(dot)de
Cc: pgsql-bugs(at)postgresql(dot)org, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Patch to allow C extension modules to initialize/finish
Date: 2006-08-03 17:04:29
Message-ID: 20060803170429.GA6298@engelschall.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

On Thu, Aug 03, 2006, tomas(at)tuxteam(dot)de wrote:

> On Wed, Aug 02, 2006 at 09:04:11PM +0200, Ralf S. Engelschall wrote:
> > PostgreSQL provides a way to load C extension modules with its internal
> > FMGR. Unfortunately there is no portable way for an extension module to
> > initialize (directly after the pg_dlopen() of the DSO) and to finish
> > (directly before the pg_dlclose() of the DSO). [...]
>
> Cool, but...
> [...]
>
> > +
> > + /* optionally give the DSO a chance to finish by calling
> > + a PostgreSQL-specific (and this way portable) "_PG_fini"
> > + function similar to what dlopen(3) implicitly does with
> > + "_fini" on some Unix platforms. */
> > + if ((PG_fini = (PG_init_t *)pg_dlsym(file_scanner->handle, "_PG_fini")) != NULL)
> ^^^^^^^^^
> > + (*PG_fini)();
> > +
> > pg_dlclose(file_scanner->handle);
> > free((char *) file_scanner);
> > /* prv does not change */
>
> shouldn't that be PG_fini_t?

Ops, good catch. Yes, "PG_fini_t", of course.

Ralf S. Engelschall
rse(at)engelschall(dot)com
www.engelschall.com

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message IvankoB 2006-08-03 20:23:59 BUG #2562: In rules: recalculation of input expression on each access
Previous Message tomas 2006-08-03 16:22:42 Re: Patch to allow C extension modules to initialize/finish

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2006-08-03 17:11:47 Re: Values list-of-targetlists patch for comments (was Re: [PATCHES]
Previous Message Csaba Nagy 2006-08-03 17:02:17 Re: pg_terminate_backend