gpt4 book ai didi

multithreading - Tibco RV 和线程

转载 作者:行者123 更新时间:2023-12-03 15:49:20 26 4
gpt4 key购买 nike

在运行使用 IBM Informix 4GL 和 Tibco RV 库 (libtibrv.so) 构建的应用程序时,我遇到了困难。
Informix 4GL 不是线程安全的,Tibco 总是创建一个线程(我认为它创建为 sson,就像我们调用 tibrv_Open() 一样,但可能是在创建传输之后)

由于 4GL 对信号的处理,这会导致应用程序崩溃(当进程运行 Tibco 线程时会运行 4GL 信号处理程序)。

使用调试器时,我注意到这个 trhead 似乎处于循环状态......它调用 select() 时超时为 10 秒。

我的问题是:
- 有没有办法避免创建线程? (我假设不是)
- 有没有办法配置我上面提到的超时?
- 如果有人可以向我解释这个线程的目的,我将不胜感激。我假设我们将不得不忍受它,但很高兴了解它为什么在那里。也许它存在检查服务器超时?

P.S.:该应用程序使用 C 与 Tibco 交互。我不认为这是非常相关的,但当前场景是在 Tru64 上,我相信 Tibco 集合点是 6.9。该环境使用 pthread 库。这些都是非常旧的版本。但是客户正在转向更新的版本。

非常感谢您的任何评论。

最佳答案

我没有遇到过 Tibco,所以我不确定我能帮上什么忙,但是......

我建议创建一个单独的进程来运行 Tibco 代码,I4GL 调用它当前用于与 Tibco 库通信的同一个 C 接口(interface),但要破坏实现,以便函数通过管道或套接字将消息发送到 Tibco 进程(这将由初始化函数启动)。这样做的好处是,它将线程从 I4GL 代码(它会导致麻烦)中提取到纯 C 和 Tibco 进程中,可以编写该进程以确保它不会造成问题。

关于multithreading - Tibco RV 和线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17403052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com