How does your callback get fired if your main program is in a tight loop calling Win32::Sleep? If it is called from a different thread, I can only suggest that you really do learn C programming and about (Windows) threads. Blindly sharing code and data structures between threads does not work, neither in C nor in Perl.

It seems to me that the problem you're trying to solve is to fire a Perl callback that gets launched from a different thread. You cannot call into Perl if the interpreter is currently not in its runloop, as you have noticed. Async::Interrupt offers you the runloop modification and approach to send a signal to your Perl interpreter asynchronously. The signal will only get processed once the Perl interpreter enters its runloop again. This is quite similar to the "safe signals" of Perl, and there rarely is a reason to really use "unsafe signals" - in most cases, you'll end up with the same problems that you already saw.


In reply to Re: Perl interpreter throws strange errors for event-driven callback processing under race conditions by Corion
in thread Perl interpreter throws strange errors for event-driven callback processing under race conditions by Cotton4Lunch

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.