It would be simpler for the parent to fork two child processes that do the processing. The parent would just read the input, divide it among the children, and write lines to the children pipes. The children processes would read lines from stdin and process them. This way all the components are simple and you don't have to worry about synchronization because the operating system handle it through the pipes. Another advantage is that it scales to any number of children.

This system does have a starvation problem. The parent will block on writing to the slowest child process and all the other children will wait on reading their next line. If this is a problem, you can try using non-blocking IO in the parent. The parent can then select an available child to write the line too.


In reply to Re: Process file simultaneously after forking by iburrell
in thread Process file simultaneously after forking by bheckel

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.