Мы разрабатываем набор приложений и некоторые общие библиотеки для общего функционала. В одной из библиотек мы используем семафоры Boost Interprocess для синхронизации потоков.
Проблема в том, что в одном приложении семафоры Boost Interprocess работают нормально, а в другом выдают исключение (what(): Функция не реализована; errno: ENOSYS). Основное различие между этими двумя приложениями заключается в том, что у отказавшего приложения есть графический интерфейс на основе Qt, а у другого приложения нет пользовательского интерфейса.
Оба приложения (динамически) связаны с librt.so.1 и libpthread.so.0. Это было протестировано на Fedora 14 с ядром 2.6.35.6-45.fc14.i686.
Обычные причины для ENOSYS, кажется, не применимы, потому что он работает с одним приложением, но не с другим, в то время как оба приложения работают в одной и той же системе.
Мы используем функцию boost::interprocess::interprocess_semaphore.timed_wait()
.
+ENOSYS interprocess_semaphore timed_wait
дал это как второе попадание: stackoverflow.com/questions/641126/ - person sehe   schedule 12.10.2011