On 7/14/21 3:37 PM, Vlad Khorsun wrote:
14.07.2021 15:29, Dimitry Sibiryakov wrote:
14.07.2021 14:25, Vlad Khorsun wrote:
Are you sure fb_shutdown() was called before exit() ?
isql calls fb_shutdown() in atexit() handler so it is surely
called after exit().
Yes, indeed. In isql fb_shutdown() is called as part of exit(), to be
more precise.
I.e. before OS loader forces unload of still loaded modules
(dlls\shared objects).
I don't know for sure when globals of loaded modules is destoyed by
Linux loader.
In Windows case it happens when module is unloading.
For dynamically loaded modules it's also done right before module is
unloaded,
One detail related to unload order - first of all dynamically loaded
modules are unloaded, next globals of application is destroyed, after it
globals of modules, linked with application - i.e. like fbclient in case
of isql, are destroyed (not sure in what order). Such order is chosen
cause it's expcted that application may call linked libraries during
desruction of globals.
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel