nixp.ru v3.0

27 мая 2017,
суббота,
22:33:18 MSK

DevOps с компанией «Флант»
Xwine написал 16 сентября 2003 года в 00:56 (610 просмотров) Ведет себя как мужчина; открыл 20 тем в форуме, оставил 91 комментарий на сайте.

вoпрoс тaкoй . есть thread oтец и дoпустим 3 thread-a сынa . мoжнo ли сделaть тaк чтo б инпут пaйпa был oдин для oтцa , a oтпутoв 3 ( пo кoл-ву сынoвей) ? если дa тo кaк ?

ppp

Отец создает канал с известным именем (это типа инпут), а каждый из сыновей создает свой собственный канал (а это оутпут) , имя которого зависит от ID потока. В запросе к отцу сыновья в начале передают свои ID, а затем тело запроса. По этому ID отец и будет слать ответы.

Ну вот и все.

anonymous

а зачем сыновьям пересылать свой PID?

отец и так их знает от форка …

ppp

Отец их может и знает, но вход то у него один и принимает он запросы от нескольких

дочерних потоков (и как он по твоему будет знать кому слать ответ!?). А от кого конкретно дынный пакет он будет узнавать по ID в пакете. За тем отец будет открывать канал, имя которого зависит от ID дочернего потока, чтобы отправить ответ на его запрос. Короче ID будет играть роль обратного адреса.

anonymous

по поводу ИД в пакете … это ты уже зашёл в Message Queue а я про субж .

вопщем я уже решил эту фигню … я просто посылаю сигнал SIGUSR1 нужному сыну ( их ПИДы хранятся в массиве ) в отве ждёт сигнал SIGUSR2 ( диспозиции изменены соответственно )

anonymous

ПС

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