Then, I would suggest rethinking your design, if you can. e.g., I hear about POE, perhaps that would be a better way to design to make it easier to debug.

Even without POE, you could do all this on a single thread using IO::Select. Especially if there's only one CPU anyway, having multiple threads isn't going to make your program go (much) faster. It will be a battle between the overhead of task switching in the kernel (far removed from your app) and the optimisation of that task switching. Otherwise, selecting on your hundred ports will probably be faster and easier to write.

A distinct possibility in your current problem is that this thread is chewing up so much CPU time that the OS starts to throttle it, and outright ignore it. Try inserting a "sleep(1)" in your loop so that it only checks once per second, rather than as often as the CPU (and OS) allows. Or, better yet, calculate the time difference between now and the desired time, and sleep for that long - which will use zero CPU time until the desired time.


In reply to Re^3: Issue with time() in loop? by Tanktalus
in thread Issue with time() in loop? by Elijah

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.