diff --git a/doc/src/sgml/xfunc.sgml b/doc/src/sgml/xfunc.sgml index 7ab20a6b0b..947dd5f1e5 100644 --- a/doc/src/sgml/xfunc.sgml +++ b/doc/src/sgml/xfunc.sgml @@ -1,4 +1,4 @@ - + User-Defined Functions @@ -1234,12 +1234,12 @@ PG_MODULE_MAGIC; Optionally, a dynamically loaded file can contain initialization and finalization functions. If the file includes a function named - _PG_init, that function will be called immediately after + _PG_init, that function will be called immediately after loading the file. The function receives no parameters and should return void. If the file includes a function named - _PG_fini, that function will be called immediately before + _PG_fini, that function will be called immediately before unloading the file. Likewise, the function receives no parameters and - should return void. Note that _PG_fini will only be called + should return void. Note that _PG_fini will only be called during an unload of the file, not during process termination. (Presently, an unload only happens in the context of re-loading the file due to an explicit LOAD command.) @@ -2921,20 +2921,19 @@ CREATE FUNCTION make_array(anyelement) RETURNS anyarray void RequestAddinShmemSpace(int size) - from your _PG_init function. + from your _PG_init function. LWLocks are reserved by calling: void RequestAddinLWLocks(int n) - from _PG_init. + from _PG_init. To avoid possible race-conditions, each backend should use the LWLock - AddinShmemInitLock when connecting to and intializing + AddinShmemInitLock when connecting to and initializing its allocation of shared memory, as shown here: - static mystruct *ptr = NULL;