提升信号量异常

发布于 2024-12-09 19:57:39 字数 465 浏览 0 评论 0原文

我们正在开发一组应用程序和一些用于通用功能的共享库。 在其中一个库中,我们使用 Boost Interprocess 信号量进行线程同步。

问题是,在一个应用程序中,Boost 进程间信号量工作正常,但在另一个应用程序中,它们会抛出异常(what():函数未实现;errno:ENOSYS)。 这两个应用程序之间的主要区别在于,失败的应用程序具有基于 Qt 的 GUI,而另一个应用程序没有 UI。

两个应用程序都(动态)与 librt.so.1 和 libpthread.so.0 链接 这已经在 Fedora 14 上进行了测试,内核为 2.6.35.6-45.fc14.i686。

ENOSYS 的常见原因似乎并不适用,因为它适用于一个应用程序,但不适用于另一个应用程序,而这两个应用程序都在同一系统上运行。

我们正在使用 boost::interprocess::interprocess_semaphore.timed_wait() 函数。

We are developing a set of applications and some shared libraries for common functionality.
In one of the libraries, we use Boost Interprocess semaphores for thread synchronization.

The problem is that, in one application the Boost Interprocess semaphores work fine, but in another application they throw an exception (what(): Function not implemented; errno: ENOSYS).
The main difference between the two applications is that the failing application has a Qt-based GUI, while the other application does not have a UI.

Both applications are (dynamically) linked with librt.so.1 and libpthread.so.0
This has been tested on Fedora 14, with kernel 2.6.35.6-45.fc14.i686.

The usual reasons for ENOSYS do not seem to apply, because it works with one application, but not with the other while both applications run on the same system.

We are using the boost::interprocess::interprocess_semaphore.timed_wait() function.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文