在运行使用 IBM Informix 4GL 和 Tibco RV 库 (libtibrv.so) 构建的应用程序时,我遇到了困难。Informix 4GL 不是线程安全的,Tibco 总是创建一个线程(我认为它创建为 sson,就像我们调用 tibrv_Open() 一样,但可能是在创建传输之后)
由于 4GL 对信号的处理,这会导致应用程序崩溃(当进程运行 Tibco 线程时会运行 4GL 信号处理程序)。
使用调试器时,我注意到这个 trhead 似乎处于循环状态......它调用 select() 时超时为 10 秒。
我的问题是: - 有没有办法避免创建线程?(我假设不是) - 有没有办法配置我上面提到的超时?- 如果有人可以向我解释这个线程的目的,我将不胜感激。我假设我们将不得不忍受它,但很高兴了解它为什么在那里。也许它存在检查服务器超时?
PS:应用程序使用 C 与 Tibco 进行交互。我不认为这是非常相关的,但当前场景是在 Tru64 上,我相信 Tibco 集合点是 6.9。该环境使用 pthread 库。这些都是非常旧的版本。但是客户正在转向更新的版本。
非常感谢您的任何评论。