But as the second iteration starts the daemon dies

That is the number one symptom( not 100% positive), that the first run's threads are still partially hanging around, and causing confusion, and your failure. Are you sure they joined? A thread must return from it's code block to be joinable. So you need something in your thread code block, to tell that thread to return. Just telling it to join, will NOT do it. The latest version of threads will not join if the thread has any piped opens left open, so you must kill any pids the thread launched. The latest threads version does has a way to summarily kill a thread, without it returning. What version of Perl you running?

In Perl, the thread gets an exact copy of the parent, at the time of spawning.... that includes any previous spawned threads. This makes it very tricky to dynamically spawn threads, as you do. You can try killing the thread (or forcing it to return), but that is no gaurantee that any objects you used got cleaned up, causing part of the thread to linger around.

The only reliable solution, is to reuse your threads. Don't try to dynamically spawn and join.....even if you get it to work, you will get a memory gain each spawn cycle. So reuse your threads, and preferrably create all of them before you demonize the main thread. See Reusable threads demo.


I'm not really a human, but I play one on earth Remember How Lucky You Are

In reply to Re: Threading + Daemons troubles by zentara
in thread Threading + Daemons troubles by rottmanja

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.