LINUX.ORG.RU

передача сигнала с инфой от одного потока другому

 ,


0

1

Приветы!

Рассматривается следующий метод для передачи инфы от одного потока другому. Инфа - это условный ID, который main поток процесса должен отправить второму. второй поток на основе этого ID уже вытащит из массива строк необходимую строку и распечатает ее в лог файл, например.

Предполагается передавать параметр ID в виде нагрузки какого либо сигнала, который будет вызываться sigqueue. Этот сигнал мы залочим в потоке main, но будет ловить и обрабатывать во втором потоке.

Работоспособен ли такой подход? (главная цель - это чтобы main поток как можно меньше времени тратил на возню с логами,). Можно ли обойтись тут сигналами, не используя блокировки?

спасибо.

для таких случаев используют буферизированный логинг,
а в вашем случае представьте что вы своим логингом нагнете сигналы, какой в этом смысл ? скорость подачи сигналов нагнет его ipc
убирайте логинг, он не нужен

anonymous ()
Ответ на: комментарий от anonymous

буферизованный логгинг - в какую сторону смотреть и думать? там как бы не совсем логи, а лишь логи ошибок. Сейчас все привязано к rsyslog в который сам main поток и пишет, хотели вынести запись в rsyslog в отдельный поток, но с минимумом блокировок.

elmir_k ()