This patch fixes shared_preload_libraries on Windows hosts. It forces

ach backend to re-load all shared_preload_libraries.

Korry Douglas
This commit is contained in:
Bruce Momjian 2007-02-08 15:46:04 +00:00
parent eea3749d2e
commit a37b006d89
2 changed files with 22 additions and 2 deletions

View File

@ -1,4 +1,4 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.109 2007/02/08 03:56:42 momjian Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.110 2007/02/08 15:46:03 momjian Exp $ -->
<chapter Id="runtime-config"> <chapter Id="runtime-config">
<title>Server Configuration</title> <title>Server Configuration</title>
@ -990,6 +990,17 @@ SET ENABLE_SEQSCAN TO OFF;
libraries that will be used in most sessions. libraries that will be used in most sessions.
</para> </para>
<note>
<para>
On Windows hosts, preloading a library at server start will not reduce
the time required to start each new server process; each server process
will re-load all preload libraries. However, <varname>shared_preload_libraries
</varname> is still useful on Windows hosts because some shared libraries may
need to perform certain operations that only take place at postmaster start
(for example, a shared library may need to reserve lightweight locks
or shared memory and you can't do that after the postmaster has started).
</para>
</note>
<para> <para>
If a specified library is not found, If a specified library is not found,
the server will fail to start. the server will fail to start.

View File

@ -37,7 +37,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.517 2007/02/07 16:44:48 tgl Exp $ * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.518 2007/02/08 15:46:04 momjian Exp $
* *
* NOTES * NOTES
* *
@ -3360,6 +3360,15 @@ SubPostmasterMain(int argc, char *argv[])
secure_initialize(); secure_initialize();
#endif #endif
/*
* process any libraries that should be preloaded at postmaster start
*
* NOTE: we have to re-load the shared_preload_libraries here because
* this backend is not fork()ed so we can't inherit any shared
* libraries / DLL's from our parent (the postmaster).
*/
process_shared_preload_libraries();
/* /*
* Perform additional initialization and client authentication. * Perform additional initialization and client authentication.
* *