Problem: What are the issues with linking an application that uses signals with the InterBase multithreaded shared library, gdsmt? Solution: This is a Solaris specific issue InterBase v4.0 -------------------------- Use of the InterBase v4.0 gdsmt library with applications that use signals is not supported on any version of Solaris. There are too many Solaris operating system bugs relating to the use of threads and signals to allow for a stable application to be built using our gdsmt library. For applications that require the use of signals the only available alternative on InterBase v4.0 is the pipe library. However, there is a significant performance issue with using the pipe library. The pipe library is known to be much slower than the shared library. The readme file for the InterBase SO-V4.0N1 kit recommends: "Do not write multi-threaded applications that access InterBase. More to the point, do not use UNIX signals for any purpose in a multi-threaded application on Solaris." InterBase v5.0 -------------------------- InterBase v5 is a single process/multithreaded server that does NOT make use of signals. There is a shared library that applications can link with to get superior performance. Applications that use signals can link with the shared library, because InterBase v5.0 doesn't need to use signals to communicate between attachments. Since it is a single process, the different attachments can communicate across threads. In fact, the pipe library has been retired for v5, because it is no longer needed. The pipe library was specifically introduced to get around signal issues that were present on earlier versions of InterBase.
Last Modified: 17-OCT-00