Есть задача работы RTP-потоками и конвертирование SIP-сигнализации, сделана попытка реализации в рамках одного процесса (в разных тредах). Для работы с RTP используется библиотека oRTP, для обработки SIP-сигнализации используется oSIP в конвертере сигнализации используются конечный автомат, некоторые переходы которого осуществляются по таймаутам (тред останавливается sleep'ом). Проверка работоспособности проводится под Linux (ядро 2.6.12), наблюдаются большие потери пакетов в RTP потоке. Подозрение на то что планировщик вовремя не передает управление треду обслуживающему RTP поток. Посоветуйте (направте) как разобраться в ситуации (инструментарий, документация и добрым словом).
> Подозрение на то что планировщик вовремя не передает управление
>треду обслуживающему RTP поток. Посоветуйте (направте) как разобраться в ситуации (инструментарий,
>документация и добрым словом).Глупость какая то, udp пакеты не могут теряться сильно из за загрузки, они ставятся в очередь системы и теряются только если очередь переполнена.
Но скорее всего чтото не то в архитектуре программы, попробуй вынести прием и отправку пакетов в отдельный поток и передавать каким либо образом данные в нужные потоки.Может быть эти oRTP и oSIP не предназначены для такого использования
что то мне сама схема треиды,.. слипы,... не нравиться
вы планируете использовать свое приложение на много процессорном цомпе?
бестолку
>
> что то мне сама схема треиды,.. слипы,... не нравиться
> вы планируете использовать свое приложение на много процессорном цомпе?
> бестолкуНет просто требуется несколько ниток выполнения. Обработка голоса одним тредом, сигнализация и общее упраление другим.