Есть ли случаи, когда запись в доменные сокеты блокируется вечно?

У меня есть многопроцессный проект, и я использую доменные сокеты в качестве метода IPC.

Например, процесс A имеет несколько потоков и вызывает функцию "записи" для отправки данных процессу B. (Все функции сокета домена защищены семафором.) Когда система занята, один поток блокируется в "написать", и он не выпущен вообще. Я проверил процесс B и проблем нет, он по-прежнему вызывает функции select и read с небольшими потерями времени. (По крайней мере, 10 мс, в соответствии с галочкой.)

Есть ли случаи, когда функция "запись" используется в блоках сокетов домена, за исключением того, что получатель не считывает данные? Я проверил, что нет проблем в процессе B - получение части вообще. Это работало без какой-либо блокирующей ситуации. Количество потоков, которые вызывают "запись", составляет около 5~6, и они вызывают "запись" довольно часто. (В некоторых случаях 100~200 раз в 1 секунду.)

Мой проект - встроенная система Linux на основе MIPS. Цепочка инструментов использует uclibc, поэтому она может отличаться от системы Linux на базе ПК.

0 ответов

Другие вопросы по тегам