LINUX.ORG.RU

SIGIO и его обработчик.


0

0

Подскажите какое-нибудь верное решение для обработки этого сигнала.. Необходимо, чтобы во время вызова обработчика он больше гарантировано не был получен до завершения обработчика. Мне пока в голову лезут только мысли об условных переменных, мьютексах.. Нет ли более красивого решения, которое было-бы более "близко" по семантике к сигналам?

★★★★

а чем man 2 signal не нравится:
...
PORTABILITY
       The  original  Unix  signal()  would  reset the handler to
       SIG_DFL, and System V (and the Linux kernel  and  libc4,5)
       does  the same.  On the other hand, BSD does not reset the
       handler, but blocks new  instances  of  this  signal  from
       occurring  during  a  call  of  the  handler.   The glibc2
       library follows the BSD behaviour.

откуда видно, что если вручение сигнала не блочится при вызове его 
обработчика и дефолтное поведение не игнорировать сигнал, то имеем
race condition и мьютексы здесь не помогут (раскрутка стека для 
обработчика начнётся несколько раньше выполнения его первой команды) :(

вопросы глупые какие-то пошли, а может я уже сплю, глазки слипаются, пошёл я спать...

anonymous
()

В man sigaction на предмет sa_mask не заглядывали?;)

Murr ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.