<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">AnyEvent::HTTP сохраняет коннекты для
      повторного использования и после fork с ними происходит каша...<br>
      <br>
      Попробуй до fork использовать AnyEvent::HTTP с параметром
      keepalive => 0<br>
      <br>
      <br>
      09.10.2013 7:26, ksvs пишет:<br>
    </div>
    <blockquote
      cite="mid:1381289173.31699.YahooMailNeo@web171503.mail.ir2.yahoo.com"
      type="cite">
      <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>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
    </blockquote>
    <br>
    <br>
    <div class="moz-signature">-- <br>
      С уважением Анатолий.</div>
  </body>
</html>