<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, Sans-Serif;font-size:10pt"><div>Есть приложение, в котором главный процесс и дочерние общаются между собой по сокетам, используя EV модуль.<br>Дочерние процессы получают информацию от главного, делают HTTP запросы, анализируют и возвращают результат главному. В дочерних процессах запросы идут параллельно с использованием либо Net::Curl::Multi, либо AnyEven::HTTP.<br><br>Все было отлично, пока не понадобилось в главном процессе перед fork, сделать HTTMP запрос. LWP использовать можно, но не
 хочется.<br>Используемые варианты:<br>1. Делаем первый запрос при помощи AnyEven::HTTP, дочерние работают с Curl - все отлично. Это для проверки.<br>2. Делаем первый запрос при помощи AnyEven::HTTP на несуществующий адрес, дочерние работают с AnyEven::HTTP - все нормально.<br>3. Делаем первый запрос при помощи AnyEven::HTTP на существующий адрес, работа AnyEven::HTTP в дочерних процессах зависает. При этом общение между процессами идет: гонял ping для подтверждения того, что EV не завис и система коммуникаций между процессами жива.<br><br>Может кто-то сталкивался с таким
 поведением AnyEven::HTTP?<br><br>Сделал максимально простой вариант для теста.<br>В нем с первоначальным вызовом AnyEven::HTTP, в дочернем процессе AnyEven::HTTP, стал работать, но очень-очень медленно. Точнее все зависит от того, как карты лягут: без первого вызова время выполнения 1,24 секунды, а с первым - может быть 21 секунд, а может быть 5 секунд.<br><br><br>Но ведь с Curl работает отлично. Значит дело не в EV, а в AnyEven::HTTP.<br>Для подтверждения этого вместо первого вызова AnyEven::HTTP, сделал просто открытие сокета, EV::WRITE, EV::READ - все работает отлично.<br><br>AnyEven::HTTP
 настраивал, чтобы он закрывал все сокеты. Это перед форком. Да и делается ведь EV::break перед форком.<br><br>Интересно понять причину этого.</div></div></body></html>