You probably don't want to be sharing the open filehandle between processes, since each process will be moving that filehandle around, and reading arbitrary bits of data.

Ignoring alternatives that force you to re-think your design fundamentally, I might suggest that you fork first, then open the file. Have each thread know how much of the file it's going to be reading, and what thread number it is, and then have it seek to the right spot in the file, find the next new line, and read until it passes the starting point for the next thread.

I have no idea how easy it will be to add all of this to the DBM file, though.


In reply to Re: Threading read access to a filedescriptor by Fastolfe
in thread Threading read access to a filedescriptor by smferris

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.