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, 开发者_C百科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.
精彩评论