I hava a multithreaded application with large, nested xml configuration file. I look for 'clean' way of reconfiguring whole app so that all worker threads would use 'fresh' config simultaneously.

I see several ways:
1) create one shared singleton config class through which i would access my values, i.e.:
use MyConfig; # this instance is common for all threads MyConfig::instance()->getVal(...);
2) use non-shared singleton object per each thread and add custom signal handler that would reload configuration data. When main thread would found that config was chaged it would send this signal to all workers. But! for N workers this process would execute N times just to fetch the same content (then parse and validate it)...

Is there any other way? And which is the best?

In reply to Configuration in threaded app by menth0l

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.