Это полностью зависит от того, указали ли вы CLONE_THREAD
для системного вызова клона. Если вы сделаете , а не , то itimer не будет наследоваться дочерним элементом (поэтому он не будет сигнализироваться по истечении таймера). Хотя по-прежнему будет установлен обработчик сигнала.
Если вы делаете , указываете CLONE_THREAD
, то дочерний процесс считается принадлежащим тому же процессу, что и родительский. Когда таймер истекает, один потоков будет сигнализироваться (и запускать обработчик сигнала) - но не указано, какой именно.
Что произойдет, если при попытке изменить обработчик сигнала у дочернего элемента зависит флаг CLONE_SIGHAND
. Если он не установлен, тогда ребенок может с радостью вызвать sigaction
, чтобы изменить обработчик сигнала, не затрагивая родителя; но если установлено CLONE_SIGHAND
, то когда дочерний объект вызывает sigaction
, обработчик сигнала изменяется для всего процесса. Также обратите внимание, что если вы укажете CLONE_THREAD
, вы также должны указать CLONE_SIGHAND
.
Однако ребенок может использовать sigprocmask
для маскировки сигнала SIGVTALRM
, не затрагивая родителя.