Hi All, I have the following threaded code that works unreliably, it works more freuqntly than not, but when it doesn't work I hit a print statement below "The filename is: $fn" and then the script ends! Any ideas would be appreciated.

use threads; use threads::shared; use Thread::Semaphore; use IO::Handle; use strict; my $sem = Thread::Semaphore->new(); my $seq :shared = 1; my $th1 = threads->create('Printer', $ARGV[0]); my $th2 = threads->create('Printer', $ARGV[1]); $th1->join(); $th2->join(); sub Printer { my $f = new IO::Handle; my $fn = shift; my $ifh; print "The filename is: $fn\n"; if (open ($ifh, '<', $fn) == 0 ) { my $tid = threads->tid(); print "\n\nError: problem opening up file: $fn. Exiting threads: + $tid\n"; return 1; } my $msg = ""; if ($f->fdopen(fileno($ifh),"r")) { print "successfully opened up .\n"; } else { print "\n\nError opening up input file.\n"; return 2; } while (defined($msg = $f->getline())) { $sem->down(); $msg = "<$seq>: " . "$msg"; print "message is: $msg\n"; $seq++; $sem->up(); } $f->close(); }

In reply to Crahes due to threads. by jasoncollins

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.