Увеличить исключение семафора - PullRequest
1 голос
/ 12 октября 2011

Мы разрабатываем набор приложений и несколько общих библиотек для общей функциональности.В одной из библиотек мы используем семафоры Boost Interprocess для синхронизации потоков.

Проблема в том, что в одном приложении семафоры Boost Interprocess работают нормально, но в другом приложении они выдают исключение (what (): Functionне реализовано; 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().

...