void send(union SIGNAL **sig, PROCESS to);
Посылает буфер сигнала указанному процессу и заменяет сигнал на NIL в указателе вызывающего процесса, чтоб не допустить повторное использование процесса.
Вызывающий процесс после вызова перестаёт владеть буфером.
( переадресация сигналов)
Если целевой процесс завершён, сигнал молча уничтожается, вызывающий процесс этого не узнает.
Нет
Вызывающий процесс может достучаться до адресата в одном из следующих случаев:
( переадресация сигналов)
#define MYPROCESS_DOSOMETHING 1 struct MYSIG { SIGSELECT sig_no; char data; }; union SIGNAL { SIGSELECT sig_no; struct MYSIG mysig; }; ... union SIGNAL *sig; sig = alloc(sizeof(struct MYSIG), MYPROCESS_DOSOMETHING); sig->forth.data =’x’; send(&sig,proc_);